创建型设计模式主旋律
- 都将关于该系统使用哪些具体的类的信息封装起来
- 隐藏了这些类的实例是如何被创建和放在一起的
工厂方法(FactoryMethod)
意图
定义一个创建对象的接口,让子类决定实例化哪一个类。使一个类的实例化延迟至其子类
结构
代码呈现
public class FactoryMethod {
public static void main(String[] args) {
Factory factoryA = new FactoryA();
Product productA = factoryA.createProduct();
productA.info();
Factory factoryB = new FactoryB();
Product productB = factoryB.createProduct();
productB.info();
}
}
//接口产品
interface Product {
public void info();
}
//实现接口
class ProductA implements Product {
@Override
public void info(){
System.out.println("产品信息:A");
}
}
class ProductB implements Product{
@Override
public void info(){
System.out.println("产品信息:B");
}
}
interface Factory {
public Product createProduct();
}
class FactoryA implements Factory {
@Override
public Product createProduct(){
return new ProductA();
}
}
class FactoryB implements Factory {
@Override
public Product createProduct(){
return new ProductB();
}
}
适用性
- 当一个类不知道它所必须创建的对象的类时
- 当一个类希望由它的子类来制定它所创建的对象时
抽象工厂(AbstractFactory)
意图
提供一个创建一系列相关或相互依赖对象的接口而无须指定它们具体的类
结构


最低0.47元/天 解锁文章
1750

被折叠的 条评论
为什么被折叠?



