现在的位置: 首页 > 综合 > 正文

策略类模式-学习笔记

2018年04月30日 ⁄ 综合 ⁄ 共 645字 ⁄ 字号 评论关闭
 策略模式:
  
    他定义了算法家族,使得各种算法可以相互替换,从而达到算法的增加和改变不影响到使用算法的客户端。
   
    他定义了一系列算法,从概念上看这些算法都是实现了统一功能,只是实现不同。他们可以以相同的方式调用,减少了算法和使用算法之间的耦合

    Strategy(算法类)类为Context(工厂类)提供了一系列可重用的算法和行为。继承有助于折取出算法中的公共功能。

    另外策略模式简化了单元测试,每个算法都有自己的实现类,可以自己提供接口测试。

    策略模式可以封装不同的算法,在实践中,我们发现他可以封装任何类型的规则,只要在分析中听到要在不同的时间响应不同的规则,就可以考虑用策略模式。

什么时候使用策略类呢:

   1、如果在一个系统中有许多类,他们的区别仅在于他们的行为,用策略类可以动态的让一个对象在不同的行为中选择合适的行为。
   2、一个系统需要在一系列算法中选择一种算法,同时这些算法都是一个父类,由于多态原则,客户端可以选择实现不同的算法。
   3、一个系统使用的数据可以不让客户端知道。
   4、如果一个对象有很多的行为,如果不用恰当的模式,这些行为就只好使用多重的条件选择语句来实现。此时,使用策略模式,把这些行为转移到相应的具体策略类里面,就可以避免使用难以维护的多重条件选择语句,并体现面向对象设计的概念

   5、以不同的格式保存文件;

   6、以不同的算法压缩文件;

   7、以不同的算法截获图象;

   8、以不同的格式输出同样数据的图形,比如曲线 或框图bar等

抱歉!评论已关闭.