定义
- 简单工厂
提供一个创建对象实例的功能,而无须关心其具体实现。被创建实例的类型可以是接口、抽象类,也可以是具体的类。- 工厂方法
定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法把实例化推迟到子类。- 抽象工厂
提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类
设计原则
- 依赖倒置原则
要依赖抽象,不要依赖具体类
变量不可以持有具体类的引用
不要让类派生自具体类
不要覆盖基类中已实现的方法
要点
- 所有的工厂都是用来封装对象的创建
- 简单工厂,将客户程序从具体类解耦
- 工厂方法使用继承,把对象的创建委托给子类,子类实现工厂方法来创建对象
- 抽象工厂使用对象组合,对象的创建被实现在工厂接口所暴露出来的方法中
- 所有工厂模式都通过减少应用程序和具体类之间的依赖促进耦合
- 要针对抽象编程,而不针对具体编程
- 依赖倒置原则,要避免依赖具体类型,尽量依赖抽象
网友评论