软件工程strategy策略模式

软件工程strategy策略模式

ID:6137197

大小:1.01 MB

页数:12页

时间:2018-01-04

软件工程strategy策略模式_第1页
软件工程strategy策略模式_第2页
软件工程strategy策略模式_第3页
软件工程strategy策略模式_第4页
软件工程strategy策略模式_第5页
资源描述:

《软件工程strategy策略模式》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、strategy策略行为型设计模式摘要:Strategy是属于设计模式中对象行为型模式,主要定义一系列的算法,把这些算法一个个封装成单独的类,并且使这些类可以相互替换,以达到能够使得算法的变化可独立于使用它的客户的目的。关键字:设计模式,定义算法,封装引言:Strategy应用比较广泛,比如,公司经营业务变化图,可能有两种实现方式,一种是线条曲线,另一种是框图(bar),这两种算法可以使用Strategy实现。还有一些使用如:Context,印刷图书,Strategy,使用某种技术的印刷设备,Algorithem,具体的印刷技术,如喷墨,胶印,I

2、Strategy,印刷正文:行为型模式:1.职责链模式ChainofResponsibility2.命令模式Command3.解释器模式Interpreter4.迭代器模式Iterator5.中介者模式Mediator6.备忘录模式Memento7.观察者模式Observer8.状态模式State9.策略模式Strategy10.模板方法模式TemplateMethod11.访问者模式Visitor   1.职责链模式ChainofResponsibility       职责链模式使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦

3、合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。      “击鼓传球”游戏就是职责链模式的一种应用,鼓起,球从人手中传递,鼓落,拿球的人要做某件事。命令模式Command       命令模式将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;可以对请求排队或记录请求日志,以及支持可撤销的操作。命令模式是对“行为的请求者”和“行为的实现者”进行了解耦。Invoker对象可以在不同的时刻指定、排列、执行操作,支持取消、重做的操作,支持事务,记录操作的日志.           解释器模式Interpr

4、eter       解释器模式,给定一个语言,定义它的问法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。       一个特定类型的复杂问题频繁出现,这时我们可以用解释器模式将负责对象表述为一个简单的对象,再进行处理。正则表达式就是一个非常好的例子。 迭代器模式Iterator       迭代器模式提供了一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该对象的内部表示。当我们需要对聚集有多种方式遍历时,可以考虑用迭代器模式。迭代器模式提供“开始、下一个、是否结束、当前哪一项…”等统一的接口。      迭代器模式

5、分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露内部结构,又可以让外部代码透明底访问集合内部的数据。松散了耦合性,做到了信息隐蔽。      比如老师向班长要一个学生花名册,班长可以按学号进行排列,也可以按姓名首字母进行排列,只要包括了全部学生就行了。 中介者模式Mediator       中介者模式用一个中介对象来封装一系列的对象交互。中介者是各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。      中介者模式,将多个对象之间的多对多的关系转变为了一对一的关系。对象间的相互通信,都需要

6、通过中介者对象来完成,一个对象的增加和移除,不影响其他对象,这样就降低了他们之间的耦合。 备忘录模式Memeton       备忘录模式在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将该对象恢复到原先保存的状态了。 观察者模式Observer       观察者模式定义了对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖它的对象都会得到通知,并被自动更新,         系统中有两个方面,其中一个方面依赖与另一个方面,我们把这两个方面抽象,是各自可以独立的变化和复用。        

7、 就像我们现在所用到的分层,不就是一层层的依赖么?还有系统组件升级,系统功能也跟着变化,这也属于观察者模式。状态模式State       状态模式允许一个对象在其内部状态改变时改变它的行为,让对象看起来似乎修改了它的类。       状态模式就是把系统的多个状态分割开来,分布到State的子类中,消除了庞大的分支语句,减少了耦合,同时也很容易增加新的状态的和转换。        这就相当于一个Schedule或SchoolTimetable一样,时间的改变,我们的行程或课程也随之改变。策略模式Strategy       策略模式定义一系列的算

8、法,把它们一个个封装起来,并且使它们可以相互替换。本模式使得算法的变化不会影响到使用算法的客户。       策略模式将每一个算法封装到

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。