黑马程序员济南中?/p>
编著
【黑马程序员济南】策略设计模?/p>
上一次我们聊了简单工厂模式,
让大家了解到了如何使程序具备更高的解耦性,
使每一个功
能代码都独立出来,今天我们和大家聊一下另一种解耦的设计模式,它就是策略设计模式?/p>
什么是策略设计模式:它定义了算法家族,分别封装起来,让他们之间可以项目替换?/p>
此模
式让算法的变化,
不会影响到算法的客户?/p>
我们可以这样理解?/p>
工厂模式是让我们内部的构
造变得高内聚低耦合,而策略模式是让我们的内部代码和外部客户端代码不直接进行联系,
而是通过一个桥梁来进行沟通,并且使相同算法或功能的代码进行封装。给大家?/p>
UML
?/p>
进行展示一?/p>
?/p>
ConcreteStrategyA
ConcreteStrategyB
ConcreteStrategyC
Context
上下文,用一?/p>
ConcreteStrategy
来配置,
具体策略类,封装了具体的算法或行为,继承
Strategy
维护一个对
Strategy
对象的引?/p>
大家通过上方?/p>
UML
图可以看出,策略设计模式的思想为封装算法类,通过一个上下文?/p>
类,来沟通客户端和服务器端的逻辑代码。给大家代码演示一下:
/**
*
此类为抽象的基类,用于具体的代码来继承使?/p>
Context
Strategy