设计模式-简单工厂模式
简单工厂模式(Simple Factory Pattern), 又称静态工厂方法(Static Factory Method); 专门定义一个类来负责创建其他类的实例.可根据创建方法的参数来返回不同类的实例,被创建的实例通常都具有共同的父类.
角色:
- Factory:工厂角色, 负责实现创建产品的所有细节
- Product:抽象产品角色, 负责定义外部访问产品接口
- ConcreteProduct:具体产品角色, 负责封装具体的产品细节
示例: 简单工厂模式中的工厂类,可比做为富士康,它可以加工不同品牌的手机,加工厂根据加工的类型产出相应的手机,比如苹果手机&小米手机等
1 | // Phone抽象类 |
富士康
的实现
1 | @interface PhoneFactory : NSObject |
外界使用
1 | Phone *phone = [PhoneFactory createPhoneWithType:0]; |
对应的类图如下:
优点:
- 屏蔽创建细节, 减少系统耦合
缺点:
- 新添产品类型,需要修改工厂类, 不符合开闭原则.
- 产品类型繁多时,不便维护
总结:
简单工厂模式适合产品种类比较少,并且未来增多的概率比较低的情况