打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【重温设计模式】之002简单工厂模式

【重温设计模式系列源码】

简单工厂模式

基本原理

含义

简单工厂模式又叫静态方法模式(因为工厂类定义了一个静态方法)。
在现实生活中,工厂是生产产品的,
同样的,在设计模式中,一个负责生产“对象”产品的类就是工厂类。

解决的问题

将 “类实例化的操作” 和 “使用对象的操作”分开,让使用者不用知道具体参数就可以实例化出所需要的“产品”类。

言外意:

将 铅笔的生产 和 使用铅笔 分开, 使用者只关注如何使用铅笔,而并不关注铅笔是如何生产的。

即使用者可直接消费产品而不需要知道其生产的细节。

组成部分

组成 关系 作用
产品标准 具体产品的父类 描述产品的公共接口
具体产品 产品标准的具体实现类 描述生产的具体产品
工厂类 被外界调用 根据传入的不同参数而创建不同具体产品类的实例

UML类图

使用步骤

  1. 创建产品标准 (描述产品的公共接口)
  2. 创建具体产品类 (描述生产的具体产品)
  3. 创建工厂类(通过创建静态方法根据传入不同参数从而创建不同具体产品类的实例)
  4. 外界通过调用工厂类的静态方法,根据传入不同参数从而创建不同具体产品类的实例

优点

将 创建产品的工作 与 使用产品的工作 分离开来,实现了解耦。
将 初始化实例的工作 放在了工厂类进行,容易进行维护。
面向接口编程,而不是面向对象。

缺点

工厂类集中了所有实例(产品)的创建逻辑,一旦工厂类不能正常工作,整个系统都将受到影响。
一旦增加新的产品,就不得不修改工厂类的逻辑,违背了“开闭原则”。

适用场景

  • 当使用者只知道传入的参数,而不关心对象的创建细节时。
  • 当工厂类负责创建的对象(产品)比较少时。

总结

尽信书不如无书,任何脱离实际业务的架构都是在耍流氓;
所谓原则,只是为了更好地为我们服务;
具体如何应用需要我们在业务实践中灵活把控。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
简单工厂模式:解密面向对象编程中的创建类
创建型设计模式总结
php设计模式实例详解
Java之美[从菜鸟到高手演变]之设计模式
Spring 实现两种设计模式:工厂模式和单态模式
设计模式-工厂模式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服