简单工厂-Java设计模式笔记(一)

简单工厂是由一个工厂对象来决定创建出哪一种产品类的实例。属于创建型,但不属于GOF23种设计模式,更像是一种编码的风格和习惯。

学习简单工厂后,对于学习工厂方法、抽象工厂更有帮助。

适用范围

  • 1.工厂类负责创建的对象比较少。
  • 2.客户端(应用层)只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心。

优缺点

优点:只需要传入一个正确的参数,就可以获取你所需要的对象,无需知道其创建细节。

缺点:工厂类的职责相对过重,增加新的产品需要修改工厂类的判断逻辑,违背开闭原则。

示例

Video.java 视频抽象类,提供生产视频的抽象方法。

JavaVideo.java Java视频类,继承视频抽象类,并实现自己的生产视频逻辑。

PythonVideo.java Python视频类,继承视频抽象类,并实现自己的生产视频逻辑。

VideoFactory.java 生产视频的简单工厂类,通过传入参数,生产不同的视频对象。

Test.java 客户端(应用层)调用简单工厂,创建需要的对象。

UML结构图:

简单工厂-Java设计模式笔记(一)

JDK中的使用例子

在jdk源码中,也大量使用了简单工厂,比如 java.util.Calendar 类中,创建 Calendar 实例对象,调用了如下方法:

六阿哥

目前评论:2   其中:访客  2   博主  0

  1. avatar finen 0
  2. avatar www.huoyiba.com.cn 0
评论加载中...

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: