如何用工厂方法模式改写星际争霸中的英雄单位创建过程?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1510个文字,预计阅读时间需要7分钟。
本文实例讲述了PHP设计模式之工厂方法模式。分享给广大开发者参考,具体如下:
PHP手册上提到的工厂模式,实际上是一种简单工厂模式。下面来讨论简单工厂模式的扩展:工厂方法模式。
工厂方法模式。
本文实例讲述了php设计模式之工厂方法模式。分享给大家供大家参考,具体如下:
PHP手册上提到的工厂模式,其实是简单工厂模式。这里来讨论简单工厂模式的扩展:工厂方法模式。
待解决的问题:虽然简单工厂解决了动态返回不同类型对象的问题,但是实际情况当中,往往在新建一个对象的时候,需要做一些额外处理,比如制造机枪兵的时候需要判断水晶矿是否大于50,而制造火焰兵的时候需要同时判断水晶矿是否大于50和气矿大于25,还有是否建造了研究院。如果把这些代码全部放到工厂制造类里面,会使得制造类很臃肿,而且随着工厂生产的对象的种类越来越多,工厂制造类的代码会越来越难以维护。
思路:简单工厂模式中的工厂类(兵种制造器的类)保持不变,增加一个制造接口,定义一个实际制造对象的方法,然后定义各个具体制造不同对象的工厂,同时要求这些工厂执行这个制造接口,让这些工厂去实现实际制造对象的方法。
本文共计1510个文字,预计阅读时间需要7分钟。
本文实例讲述了PHP设计模式之工厂方法模式。分享给广大开发者参考,具体如下:
PHP手册上提到的工厂模式,实际上是一种简单工厂模式。下面来讨论简单工厂模式的扩展:工厂方法模式。
工厂方法模式。
本文实例讲述了php设计模式之工厂方法模式。分享给大家供大家参考,具体如下:
PHP手册上提到的工厂模式,其实是简单工厂模式。这里来讨论简单工厂模式的扩展:工厂方法模式。
待解决的问题:虽然简单工厂解决了动态返回不同类型对象的问题,但是实际情况当中,往往在新建一个对象的时候,需要做一些额外处理,比如制造机枪兵的时候需要判断水晶矿是否大于50,而制造火焰兵的时候需要同时判断水晶矿是否大于50和气矿大于25,还有是否建造了研究院。如果把这些代码全部放到工厂制造类里面,会使得制造类很臃肿,而且随着工厂生产的对象的种类越来越多,工厂制造类的代码会越来越难以维护。
思路:简单工厂模式中的工厂类(兵种制造器的类)保持不变,增加一个制造接口,定义一个实际制造对象的方法,然后定义各个具体制造不同对象的工厂,同时要求这些工厂执行这个制造接口,让这些工厂去实现实际制造对象的方法。

