课程咨询 :13623629309

太原PHP培训 > 达内新闻 > 太原php培训班:LOL设计模式之「策略模式」
  • 太原php培训班:LOL设计模式之「策略模式」

    发布:太原PHP培训      来源:伯乐在线      时间:2016-09-13

  • 之前写过一篇《什么是「设计模式」?》,没有类图,没有代码,有些同学说看不太懂,今天给大家带来策略模式(有图,有码,有真相!)。

    玩过LOL的同学都知道,LOL有上百个英雄,如果用OO技术来设计这些英雄该怎么办?

    小明:简单,先来个父类(Superclass),然后让所有的英雄继承此父类,不同的方法重写父类方法即可。

    太原php培训班

    每个英雄的QWER技能都是不一样的,重写可以没问题,但是召唤师技能每个英雄都是固定的几个难不成也都要子类重写?

    小明:对哦,召唤师技能如果都让子类重写那么就会产生多个子类代码重复,怎么办呢?

    设计原则:找出应用可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。

    小明:变化之处那就是召唤师技能,可以把召唤师技能抽取出来写成一个接口,所有召唤师技能都需要实现这个接口。

    太原php培训班

    设计原则:针对接口编程,而不是针对实现编程。

    小明:这样可以把所有固定的召唤师技能先写好,等玩家选择召唤师技能只需要设置具体的召唤师技能即可。就算以后有新的召唤师技能只需要实现这个接口就好了,具体实现类可以互相的替换。

    太原php培训班

    设计原则:多用组合,少用继承。

    小明:思路理清楚了,那就直接上代码。

    召唤师技能接口

    太原php培训机构

    具体实现

    太原php培训班

    英雄类

    太原php培训班

    客户端

    太原php培训机构

    这就是所谓的「策略模式」了,定义了算法(召唤师技能接口),分别封装起来(具体的实现类:传送、治疗术),让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。

    太原php培训班

    以上代码块用中文编写类名、变量名是为了让大家更好的理解,在实战过程中记得替换成相对应的英文。

    达内时代科技集团致力于培养面向电信和金融领域JavaC++C#/.Net3G/Android3G/IOSPHP、嵌入式、软件测试、UID、网络营销、网络工程、会计、UEDwebUnity3D、大数据、童程童美等17大方向中高端软件人才课程与少儿教育课程。选择太原php培训,不再孤军奋战,轻轻松松做IT高薪白领。太原达内培训带领有明确目标的学子迈向成功之路!想找工作的求职者可以加QQ3373924515(太原达内就业服务部)咨询了解。


上一篇:太原php培训机构:深入浅出Netty——服务启动(4)

下一篇:太原php培训机构:PHP autoload 机制详解

最新开班日期  |  更多

php高级开发名企定制班(剩2个名额)

php高级开发名企定制班(剩2个名额)

开班日期:12-29

php高级开发周末班(剩5个名额)

php高级开发周末班(剩5个名额)

开班日期:12-29

php高级开发免费试听(剩5个名额)

php高级开发免费试听(剩5个名额)

开班日期:12-29

更多高级开发工程师精品班

更多高级开发工程师精品班

开班日期:12-29

  • 地址:山西省太原市小店区学府街长治路高新国际A座24层
  • 课程培训电话:13623629309     全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56