介绍
在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。
用途
主要解决:在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。
源码
1 | public interface Gun { |
1 | public class Awm implements Gun { |
1 | public class Akm implements Gun { |
1 | public class choose { |
1 | public class celuetest { |
1 | //输出结果 |
总结
通过一个接口定义一套行为,各个不同的类实现该接口,运行时自由切换实现方式。如上述代码中,枪有很多种,但是其功能都是开火击杀,只不过不同的枪的射击细节不同,awm 是拉栓单发狙,akm 是连发步枪,当我们用枪时,自由选择,awm 就一枪一枪搞,akm 就一梭子拉到底。