【简易设计模式16】策略模式

it2023-02-08  91

总第68篇

假如明天我要去东方明珠玩,我可以坐公交车,也可以乘地铁,还可以骑共享单车,更可以打出租车等等,选择什么样的交通工具不重要,重要的是能够到达目的地,我可以为自己的出行情况制定不同的出行方式和策略。在程序中,这种设计模式称作策略模式。本篇将详细梳理这种模式。

1.策略模式的概念

策略模式(Strategy Pattern)是一种比较简单的模式,也叫做政策模式。它定义一系列算法,将每个算法封装起来,并使它们之间可以互换。

策略模式使算法可以独立于使用它的用户而变化,它使用的是面向对象的继承和多态机制,其通用的类图关系如下所示:

 

从上面的类图关系可以看出,策略模式包含三个角色:

Context封装角色:起承上启下的封装作用,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化; Strategy抽象策略角色:策略、算法的抽象,通常为接口,定义每个策略或算法必须具有的方法和属性; StrategyA具体策略角色:实现抽象策略中的操作,该类中包含具体的算法。

策略模式是对算法、规

最新回复(0)