工厂方法
1、定义
工厂方法中定义创建对象的接口,让子类决定实例化哪个类。工厂方法使得一个类的实例化延迟到其子类
2、何时使用
(1)类想让子类决定在运行时创建什么
(2)编译时无法确定创建对象的类型
客户想要某种产品(iPhone手机),它向简单工厂发出制作iPhone手机的命令,然后工厂制造相应的手机
BaseDevice 抽象手机:需要空实现协议;是工厂的产品
PhoneProtocol协议:统一电话,发短信的接口(为了统一使用接口,提示客户端对象是要遵循某些协议的)
DeviceFactory:便利构造器,根据客户端的具体指令生产具体的产品
iPhoneDevice:继承BaseDevice,具体实现打电话、发短信,特定的功能指纹识别(产品固定后,再到DeviceFactory中装配)
AndroidDevice:继承BaseDevice,具体实现打电话、发短信,特定的功能定制主题(工厂类中装配)
工厂模式Demo:https://github.com/onebutterflyW/DesignModel