创建型模式之Factory Method(工厂方法)

打印 上一主题 下一主题

主题 1832|帖子 1832|积分 5496

创建型模式之Factory Method(工厂方法)

摘要:

工厂方法模式是一种创建型设计模式,通过将对象实例化延长到子类来实现解耦。该模式包含抽象工厂接口、具体工厂类、抽象产品和具体产品四个要素,相比简单工厂模式更具扩展性。文章展示了工厂方法模式的结构图,并提供了Java代码示例,演示如何通过不同工厂(FactoryA/FactoryB)创建对应产品(ProductA/ProductB)的过程,表现了多态特性。这种模式适用于需要机动扩展产品范例的场景,遵照开闭原则,但会引入更多类。
1.媒介:

工厂方法模式是一种创建型设计模式,它将对象实例化延长到子类。该模式通过界说一个创建对象的接口,让子类决定实例化哪个类,实现了父类与具体产品的解耦。结构上包含抽象工厂接口、具体工厂类、抽象产品和具体产品四个要素。相比简单工厂模式,工厂方法模式更具扩展性,符合开闭原则,但会引入更多类。示例代码展示了如何利用工厂方法创建不同产品(ProductA/ProductB)的过程,表现了"父类对象指向子类实例"的多态特性。这种模式适用于需要机动扩展产品范例的场景。
1.简单工厂 -->> 2.工厂方法 -->> 3.抽象工厂 -->> 4.生成器 -->> 5.原生 —>> 6.单例
1,设计模式的核心在于提供了相关问题的解决方案,使得人们可以更加简单方便地复用乐成的设计和体系结构
2.设计模式基本要素:



  • 模式名称(Pattern Name)
  • 问题(Problem)
  • 解决方案(Solution)
  • 效果(Consequences)

1)意图:界说一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延长到其子类。
2)结构:创建型类模式

3.代码

  1. /**
  2. * 工厂方法模式  
  3. */
  4. public class SimpleFactory {
  5.     public static void main(String[] args) {
  6.         
  7.         // 父类 对象名 = new 子类();
  8.         Factory factoryA = new FactoryA();
  9.         Product productA = factoryA.createProduct();
  10.         productA.info();
  11.         Factory factoryB = new FactoryB();
  12.         Product productB = factoryB.createProduct();
  13.         productB.info();
  14.     }
  15. }
  16. interface Factory {
  17.    public Product createProduct();
  18. }
  19. class FactoryB implements Factory{
  20.     @Override
  21.     public Product createProduct() {
  22.         return new ProductB();
  23.     }
  24. }
  25. class FactoryA implements Factory{
  26.     @Override
  27.     public Product createProduct() {
  28.         return new ProductA();
  29.     }
  30. }
  31. interface Product {
  32.     void info();
  33. }
  34. class ProductA implements Product {
  35.     public void info() {
  36.         System.out.println("A产品");
  37.     }
  38. }
  39. class ProductB implements Product {
  40.     public void info() {
  41.         System.out.println("B产品");
  42.     }
  43. }
复制代码
喜欢我的文章记得点个在看,大概点赞,一连更新中ing…

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

滴水恩情

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表