【起源】
某个对象的行为,可以用多种算法实现,因此考虑将算法单独封装出来(利于算法维护),在创建对象时再指定具体算法。
【动机】
定义一系列算法,把它们一个个封装起来,并且使它们可相互替换。该模式使得算法可独立于使用它的客户而变化。
【核心】
对象组合的使用。
与Bridge模式很像,但Bridge关注的是“由谁来实现”;Strategy关注的是“用哪种方式实现”;
使用时,首先提炼会变化的算法,抽象出接口;然后将具体算法实现单独封装,实现接口;最后在类中组合该接口;
【代码实例】
【模型图】