工厂方法模式之Factory Method(工厂方法)
工厂方法模式之Factory Method(工厂方法)
1.前言:
工厂方法模式是一种创建型设计模式,它将对象实例化延迟到子类。该模式通过定义一个创建对象的接口,让子类决定实例化哪个类,实现了父类与具体产品的解耦。结构上包含抽象工厂接口、具体工厂类、抽象产品和具体产品四个要素。相比简单工厂模式,工厂方法模式更具扩展性,符合开闭原则,但会引入更多类。示例代码展示了如何使用工厂方法创建不同产品(ProductA/ProductB)的过程,体现了"父类对象指向子类实例"的多态特性。这种模式适用于需要灵活扩展产品类型的场景。
1.简单工厂 -->> 2.工厂方法 -->> 3.抽象工厂 -->> 4.生成器 -->> 5.原生 —>> 6.单例
1,设计模式的核心在于提供了相关问题的解决方案,使得人们可以更加简单方便地复用成功的设计和体系结构。
2.设计模式基本要素:
- 模式名称(Pattern Name)
- 问题(Problem)
- 解决方案(Solution)
- 效果(Consequences)
1)意图:定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。
2)结构:创建型类模式
3.代码
/*** 工厂方法模式 */
public class SimpleFactory {public static void main(String[] args) {// 父类 对象名 = new 子类();Factory factoryA = new FactoryA();Product productA = factoryA.createProduct();productA.info();Factory factoryB = new FactoryB();Product productB = factoryB.createProduct();productB.info();}
}interface Factory {public Product createProduct();
}class FactoryB implements Factory{@Overridepublic Product createProduct() {return new ProductB();}
}
class FactoryA implements Factory{@Overridepublic Product createProduct() {return new ProductA();}
}interface Product {void info();
}class ProductA implements Product {public void info() {System.out.println("A产品");}
}class ProductB implements Product {public void info() {System.out.println("B产品");}
}
喜欢我的文章记得点个在看,或者点赞,持续更新中ing…