设计模式之工厂模式

意图

定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行

解决问题

解决接口得选项问题

何时使用

已经明确不同的条件下创建不同的对象

如何解决

让子类实现工厂接口,返回的也是一个抽象产品。

关键代码

创建过程在子类中进行

优点

  1. 一个调用者想要创建一个对象,只需要知道对象名称即可。
  2. 扩展性稿,如果想要增加一个产品,增加工厂类即可。
  3. 屏蔽产品的具体实现,调用者仅需要关注接口即可。

缺点

每增加一个产品,都要增加一个具体类和对象的实现工厂,使得系统类的个数成倍增加,不但增加了系统的复杂度还增加了系统类之间的依赖。

使用场景

  1. 日志记录:用户可以选择日志的记录位置。
  2. 数据库访问:不确定数据库或者数据库发生变化。

注意事项


作为创建类模式,在任何需要生成复杂对象的地方,均可以使用工厂方法模式。复杂的类建议使用工厂,简单的类建议直接通过new的方式完成创建。

说明:此处就不贴代码了,有兴趣的可以访问下面的两个地址!

计算机及JAVA相关思维导图git地址
设计模式的代码实现git地址

文章作者: Anders Cao
文章链接: http://yoursite.com/2019/05/18/设计模式之工厂模式/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Anders's Blog
打赏
  • 微信
  • 支付寶