将常见的工厂模式按照其复杂度,依次可分为:简单工厂、工厂方法、抽象工厂。在代码结构设计中,考虑领域的复杂度,可以综合运用多个工厂模式的组合。不要过度抽象,增加不必要的代码复杂度。
简单工厂
简单工厂模式只用一简单工厂类,包含了必要的逻辑判断,根据客户端的选择条件实例化不同的类
特点:
- 根据客户端参数创建不同的产品

工厂方法
工厂方法模式将实例化具体对象的逻辑抽象到其子类,由其不同的子类生成不同的对象
特点
- 抽象工厂类
- 根据不同的产品创建不同的工厂实现类
- 在工厂实现类中包含创建具体产品的逻辑
- 客户端需要知道需要创建的具体产品对应的工厂类

抽象工厂
抽象工厂定义了创建一系列对象的接口,由其共同的子类实现;不同的子类创建一系列不同的对象
特点
- 用于创建一个系列的对象
- 抽象工厂类用于描述创建一系列产品的所有接口
- 具体的工厂类对应一个系列产品创建的具体实现
- 客户端可以根据不同的实现类做到系列产品的整体替换

网友评论