策略模式(学习笔记)

原创 2012年03月29日 18:35:48

策略模式

策略模式,更多体现的是一种思想。

适用场景(个人理解):

当解决一个问题时,有很多种解决方法(这种方法就称之为算法或策略),你需要根据不同的场景或者运行情况来决定使用哪种方法,或者使用哪种方法,要交给客户端来决定。这时,你最好把解决这个问题的方法抽象为一个接口或一个抽象类。不同的解决方法来实现这个接口或继承这个抽象类。而不是把多种方法都写在一个类中。

uml图如下:



         这样做的好处是显而易见的,如果你要增加一种解决问题的方法,加一个类就好了。如果你把这些方法都放在一个类中,修改时显而易见的违反了开闭原则。

Context是什么?

Context就是需要使用到你这些策略的那个类,他可以是一个负责生产这些策略的简单工厂(使用简单工厂模式)。也可以是一个使用这些策略的客户端。

应用举例:

学习过Swing技术的人一定很熟悉java中布局方式,Java的布局管理器(LayoutManager),应用的就是策略模式:


 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

JAVA学习笔记(6)_____Java 策略模式 Strategy Pattern

策略模式Strategy Pattern   在Java的集合框架中,经常需要通过构造方法传入一个比较器Comparator,或者创建比较器传入Collections的静态方法中作为方法参数,进行比...

设计模式学习笔记之策略模式

策略模式定义:定义算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户 解释:这种模式是对几种原则的体现,封装变化,多用组合少用集成,和针对接口编程。主要的问题来源于...

二、策略模式——设计模式学习笔记

策略模式定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户(策略模式让算法独立于使用它的客户而独立变化)。

设计模式C++学习笔记之一(Strategy策略模式)

无意中,从网上下到一本电子书《24种设计模式介绍与6大设计原则》,很好奇这里有24种设计模式,印象中GOF写的《设计模式》(Design Patterns),好像只有23种吧。运行起来一看,还真挺吸引...

[学习笔记]设计模式[0]-{策略模式}

设计原则找出应用中可能需要变化的地方,把它们独立出来,不要和不需要变化的代码混在一起感觉这个就是整个设计模式的最主要的目标。不用在下个版本的开发的时候去修改上个版本的代码,以增量的形式去增加功能或模块...

设计模式学习笔记之策略模式

策略模式,是对一系列的算法进行了封装,使得它们之间可以相互替换。(神一般的语言,我真的无法体会) 示例代码如下: package StrategyPolicy; public interface...

设计模式学习笔记——策略模式

定义 策略模式——定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互转换。此模式让算法的变化独立于使用算法的客户。 使用场景 针对同一类型问题的多种处理方式,仅仅是具体行为有差别时。...

设计模式学习笔记之策略模式

设计模式学习笔记之策略模式

java设计模式学习笔记之策略模式

java设计模式学习笔记之策略模式 思想就是:利用向上转型 场景今天上班要用什么方式?公交?地铁?自行车?( 用java实现 ) public static void main(String[] ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)