多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
| 工厂方法设计模式 | | | --- | --- | 简单工厂是违反开放封闭原则的; 而工厂方法模式就可以规避此问题; 它需要定义工厂的接口; 让工厂的子类来确定实例化哪一个具体的产品类; 延迟了类的实例化; [TOC] 应用场景 要实例化的对象充满不确定性可能会改变的时候; 要创建的对象的数目和类型是未知的; [TOC] 结构 1个 interface 或者 abstract 产品父类; 多个实现 interface 或者继承 abstract 的具体产品类; [TOC] 1个 interface 或者 abstract 工厂父类; 多个实现 interface 或者继承 abstract 的具体工厂类; [TOC] 具体工厂类和具体产品类一一对应; 在具体工厂类中实例化具体的产品类 [TOC] 优缺点 工厂方法不需要再做判断了; 但是增加了工作量; 每增加一个产品都需要增加对应的工厂; 这就形成了一种特殊的代码重复; 不过式设计模式并不是独立使用的; 很多时候都是多个模式互相配合来弱化各自的缺点; [TOC] 具体的看【白俊遥】的工厂方法模式 代码在 /php.com/core/DesignPatterns/FactoryMethod