实现了创建者和调用者的分离
详细分类:
- 简单工厂模式(最简单也最常用,也叫静态工厂模式)
- 用来生产同一等级结构中的任意产品。(对于新增的产品,需要修改已有代码)
- 工厂类一般是使用静态方法,通过接受不同的参数的不同来返回不同的实例对象。
- 工厂方法模式
- 用来生产同一等级结构中的固定产品。(支持增加任意产品)
- 抽象工厂模式
- 用来生产不同产品族的全部产品。(对于新增的产品,无能为力,支持增加产品族)
面向对象的设计原则
- OCP(开闭原则:open-closed principle)一个软件的实体应当对外扩展开放,对修改关闭。
- DIP(依赖倒转原则:denpendence inversion principle)要针对接口编程,不要针对实现编程。要依赖于对象,而不是依赖与接口
3.LoP(迪米特法则:Law of Demeter) 只与你直接的朋友通信,而避免和陌生人通信。
核心本质
- 实例化对象,用工厂方法代替new操作。
- 将选择实现类、创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。