简单工厂模式
含义
由原本谁使用谁创建转变为由专门的类来创建。 (非 23 设计模式之一,工厂模式的基础)
优点
- 将对象的创建和使用分开
- 无需关心创建对象的具体实现
缺点
- 当需要创建对象类型多的时候,管理难度较大
- 不符合单一职责原则,一个工厂类负责了很多 class 类的创建。
- 不符合开闭原则,扩展品类的时候,需要修改已有代码
详解
有 class 1 、class 2 继承 class 对象
image.png当 A 需要一个 class 1 对象时,需要 new 一个 class 1 对象。
image.png当 B 需要一个 class 2 对象时,也需要 new 一个 class 2 对象。
image.png...
造成的结果就是对象创建混乱, 由此引出简单的工厂模式,就是有工厂类进行创建对象。 A B 无需关心如何创建对象。只需要调用 factory 提供的创建方法即可。
image.png工厂模式
思考
针对简单工厂模式的弊端,如何进行优化
分析
保证每个类对象的创建由一个工厂类负责
创建工厂类的接口和各个类的工厂实现类
image.pngclass 1 和 class 2 有共同的父类 class
创建对象时,调用各个对象的工厂构建方法。
image.png当需要新增类型,只需要实现接口并添加对应的实现类即可。
抽象工厂模式
当一个类对象有多种状态的时候或者相关联的对象处理的时候,我们就需要用到抽象工厂模式。
分析
当 class A 构建成功之后需要特定的处理,那么这个时候我们不需要再单独进行一个对应处理的工厂类,防止匹配错误。而是将对应的处理合并到同一个工厂类进行操作。在这个工厂类将关联的操作都进行接口实现。
网友评论