策略模式
2019-07-25 02:03
1296 查看
先看下下面的这部分代码,有一个职业的枚举,用来确认有哪些职业。在FGO类中,有一个Attack函数,表示不同角色进行不同的***。
初看这段代码没有什么问题,但是随着职业的增加,还会写很多的if else语句,这里就存在两个问题
1、每次都得编译这部分代码?代码可复用性?
2、如果每次进来都是最后一个else分支,那是不是前面的判断都是无用的?这是不是就导致了程序需要的内存变大了?
带着这两个问题,咱们来看策略模式的解决办法
首先,咱们把每个人物都是有***属性的,咱们先把这部分抽象出来
接着,不同职业的人物,就可以通过继承,重写attack的方式,来完成不同职业的***方法
这样,咱们的策略模式就完成了一大半了,那么咱们怎么来使用策略模式的代码呢,
这就是策略模式的全部内容,这里有提到工厂方法,后续会对工厂方法进行学习,说明。
可以看到,如果以后有新增的职业时,只需要增加一个该职业的子类,以及修改工厂方法中的部分内容就可以了。这样代码就具有了高可用性,同时也解决了之前的两个问题。代码大部分都是稳定的,只有少部分是变化的。
好了,今天就到这里。睡觉
我是程序员的颈椎, 欢迎大家一起学习交流QQ群689930130
相关文章推荐
- java之设计模式--->策略模式
- 设计模式-策略模式
- 策略模式(From:Head First设计模式)
- 策略模式
- 设计模式 之 策略模式
- 第一章:设计模式:策略模式(三)
- 设计模式之策略模式
- 策略模式
- 设计模式之策略模式
- java设计模式之策略模式
- 策略模式(strategy)
- 设计模式(十三)策略模式(Strategy)-行为型
- 6. JavaScript 设计模式(策略模式,桥接模式)
- 设计模式.策略模式
- 大话设计模式——策略模式
- 设计模式---策略模式
- 一、策略模式
- JAVA设计模式——第 1 章 策略模式【Strategy Pattern】(转)
- java设计模式7.策略模式、模板方法模式、观察者模式
- 内存对齐分配策略(含位域模式)体会