bet356体育在线

查看内容

而且使它们还可以相互替换

  策略模式定义了一系列的算法,并将每一个算法封装起来,bet356体育在线而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。

  Strategy是一个抽象类,其中有一个抽象方法Algorithmlnterface(),继承Stratety抽象类的就是具体的算法类,而重写基类的AlgorithmInterface()方法,返回具体算法的返回值。例如:一个商场收银的举例《大话设计模式》

  ==上述的AlgrithmSuper抽象类中有一个抽象方法就是用来计算并返回实际该收的钱,而继承它的三个类AlgrithmA、AlgrithmB、AlgrithmC就是三个算法分别实现了打折、满xx返xx、原价。

  而策略模式,则用一个策略上下文,维护一个对 策略(Strategy,AlgrithmSuper) 对象的引用,即:

  至此,对于策略模式中通过基类抽象类对各个实际算法的封装,并通过一个策略上下文实现依赖注入。

分享: