1、简单工厂方法模式
如上图,运输工具包含了飞机和轮船,统一由运输工厂创建。
运输工具接口:
1 | public interface Transportation { |
飞机:
1 | public class AirPlaneTransport implements Transportation{ |
轮船:
1 | public class SteamerTransport implements Transportation { |
运输工具工厂:
1 | public class TransportFactory { |
1.1、优点
- 达到了对象创建和使用分离的目的;
- 客户端通过传入特定类型参数直接通过工厂类创建产品,无需知道具体类名;
- 如果需要新增具体产品,无需修改客户端调用代码,提供系统灵活性。
1.2、缺点
- 工厂中需要根据特性类型来创建产品,职责过重;
- 添加新的具体产品,需要修改工厂方法,违反了开闭原则;
- 简单工厂是静态方法,无法继承扩展,不能形成基于工厂的继承体系。