0
点赞
收藏
分享

微信扫一扫

Java---23种设计模式(二)------工厂方法


一.什么是工厂方法模式

        工厂方法(Factory Method)模式的是定义一个创建产品对象的工厂接口或抽象方法,让子类决定实例化哪一个类

        工厂方法是一个类的实例化延迟的其子类

       因为每一个具体产品类对应着一个具体的工厂类,故增加具体产品时只需要增加一个具体工厂类.。

       工厂方法模式简单工厂模式的进一步抽象和推广,克服了简单工厂的违背开放-封闭原则的缺点

        又保持了封装对象创建过程的优点

 

 

Java---23种设计模式(二)------工厂方法_简单工厂模式

Java---23种设计模式(二)------工厂方法_工厂方法模式_02

 

 

 

       工厂方法模式与简单工厂模式的区别

在于工厂方法模式比简单工厂模式多出一个抽象工厂接口每一个具体工厂实现某个具体产品的实现。

比如生成每本书都需要许多信息,书名,出版社,生成时间和生成顺序,但是不同的书籍信息要求不确定

 

二.工厂模式的例子

最终运行结果

 

Java---23种设计模式(二)------工厂方法_工厂方法_03

 

 

Book

Java---23种设计模式(二)------工厂方法_简单工厂模式_04

Java_Book

Java---23种设计模式(二)------工厂方法_简单工厂模式_05

 

bookfactory

 

Java---23种设计模式(二)------工厂方法_工厂方法模式_06

 


JavaBookFactory


Java---23种设计模式(二)------工厂方法_工厂方法_07

测试类

Java---23种设计模式(二)------工厂方法_简单工厂模式_08

 

 

三.工厂方法的优势

     通过接口规定每个具体工厂需要实现的方法不需要考虑具体产品如何生成,将生成具体产品的细节放到具体工厂中取实现

当工厂生成产品需要更多的配置信息,将所有产品所需的配置信息都放在简单工厂中太过杂乱,也不便于代码维护

生成某个产品的信息抽取出来,单独放到一个类中,每个具体工厂对应某个具体产品,使得具体工厂的职能更加单一,代码简洁。

使信息局部化,降低了类的复杂性变更引起的风险降低

 

举报

相关推荐

0 条评论