- 工厂(factory)处理对象创建的细节。
- 将实例化具体类的代码从应用中抽离,达到“不针对实现编程”的目的
- 工厂模式包含:静态工厂、简单工厂、抽象工厂、工厂方法等形式
简单工厂
简单工厂并不是一个设计模式,它更像一种编程习惯。
简单工厂只是将对象创建的代码,从客户程序中抽离到一个“工厂”中。
- 它可以实现对象创建代码的 复用
- 避免客户程序依赖具体类
静态工厂
利用静态方法定义一个简单工厂。
- 它不需要创建实例对象
- 不能通过继承改变创建方法的行为
工厂方法模式 (Factory Method Pattern)
定义一个创建对象的接口,由子类决定要实例化的类是哪一个。
工厂方法让类(工厂)把实例化推迟到子类。
- 对象创建的行为,被封装在子类中
- 将客户(超类中的代码)和实际创建产品的代码解耦
- 创建单一产品
工厂方法使用继承:把对象的创建委托给子类,子类实现工厂方法来创建对象
说明:工厂的基类负责除“创建对象”之外的职责,用子类来承担“创建对象”的职责
抽象工厂模式
提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。
抽象工厂允许客户使用抽象的接口来创建一组相关的产品,而不需要知道(或关心)实际产出的具体产品是什么。
- 创建一族产品
- 同样将客户和实际创建产品的代码解耦
抽象工厂使用对象组合:对象创建被实现在工厂接口所暴露出的方法中
说明:抽象工厂中,工厂只有一个职责,就是“创建对象”。然后工厂被组合到客户类中,完成其任务。
网友评论