java设计模式 -------- 行为模式 之 策略模式(4)

[本文是自己学习所做笔记。欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020]

  上面3节实现了从最初的对整形数组排序到最后能够对全部类型都能够依据须要定义自已的比較器进行排序,这里面不同的比較器,实现了不同的算法。而且单独成一个类。在应用时,能够依据实际须要灵活选择,可扩展性强,事实上这里就用到了策略模式。

  策略模式Strategy是属于设计模式中对象行为模式型模式,主要是定义 一系列的算法,把这些算法一个个封装成单独的类,比方以上三节中的比較器。策略模式应用比較广泛。如学校的流量变化图。可能有两种实现方式,一个是拆线。一个是饼状形表示,又如。我们上述3节中的Cat类型的高度比較器。重量比較器。通过 定义不同的策略,我们达到了在程序执行期间,能够自由切换算法的上的。

  实际整个策略模式的核心部分就是抽象类或接口的使用。使用策略模式能够在用户须要变化时,改动代码量非常少。并且高速。

  策略模式和工厂模式有一定的类似。

策略械相对简单easy理解,而且能够在执行时刻自由切换。而工厂模式主要是用来创建对象的。

  

  策略模式适合下列场合:

  1. 以不同的格式保存文件

  2. 以不同的算法压缩文件

  3. 以不同的算法截获图像

  4. 以不同的格式输出相同数据的图形,如曲线。Bar等。

  ...... 

  总之,一句话。策略模式适合于实际开发中遇到的“要以不同的算法。不同的格式等实现同样的功能”的情形。

策略模式的决定权在用户,系统本身提供不同算法的实现,对各种算法做封装。因此。策略模式多用在算法决策系统中。外部用户仅仅须要决定用哪个算法就可以。

原文地址:https://www.cnblogs.com/jhcelue/p/7149810.html