3 java设计模式:策略模式¶
#一、介绍 在软件开发中常常会遇到这种情况,实现某个功能有多个算法或者策略,我们可以根据应用场景的不同选择不同的算法或者策略来完成该功能。把一个类(A)中经常改变或者将来可能改变的部分提取出来,作为一个接口(B),然后在类(A)中包含这个接口(B),这样类(A)的实例在运行时,就可以随意调用实现了这个接口的类(C)的行为。 比如定义一系列的算法,把每个算法封装起来,并且使他们可以相互替换,使得算法可独立与使用它的客户而变化。这就是策略模式 #二、优缺点
- 优点 可以动态的改变对象的行为
- 缺点
- 客户端必须知道所有的策略类,并自行决定使用哪一个策略类。
-
策略模式将产生很多策略类 #三、组成
-
运行环境类:Strategy(释义:策略) 这个策略运行的环境,其实也就是在哪里使用
- 应用场景类:Person 这个就是客户端访问的类,也就是该类的对象所持有的策略
- 具体策略类:Car 据图实现策略类
- 抽象策略类:CarFunction 根据不同的需求,产生不同的策略或算法的接口。
#四、代码实现 #五、总结