UML设计模式 8 设计模式(2)--Strategy, Bridge模式.ppt

UML设计模式 8 设计模式(2)--Strategy, Bridge模式.ppt

ID:49411043

大小:883.50 KB

页数:26页

时间:2020-02-06

UML设计模式 8 设计模式(2)--Strategy, Bridge模式.ppt_第1页
UML设计模式 8 设计模式(2)--Strategy, Bridge模式.ppt_第2页
UML设计模式 8 设计模式(2)--Strategy, Bridge模式.ppt_第3页
UML设计模式 8 设计模式(2)--Strategy, Bridge模式.ppt_第4页
UML设计模式 8 设计模式(2)--Strategy, Bridge模式.ppt_第5页
资源描述:

《UML设计模式 8 设计模式(2)--Strategy, Bridge模式.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、8设计模式(2) Strategy、Bridge模式权巍主要内容8.1Strategy模式8.2Bridge模式8.3“开-闭”原则8.4组合/聚合复用原则2UML和设计模式8.1Strategy(策略)模式UML和设计模式3网上商城购物车系统的例子计算购物车中所有商品的总金额、运费。而商城经常促销,不同的商品有不同的折扣。怎样计算?用if、switch等条件语句,根据不同情况用不同算法计算;继承,在子类里面实现不同的行为;8.1.1什么是Strategy模式Strategy模式又称Policy模式,它定义一系列算法,把它们一个个封装起来,并且使它们可相互替换。该模式使

2、算法可以独立于使用它的客户而变化。UML和设计模式48.1.2策略模式中的角色环境(Context)持有一个Strategy类的引用。可定义一个接口让Strategy访问它的数据。抽象策略(Strategy)给出所有的具体策略类所需的接口,通常由一个接口或抽象类实现。具体策略(ContreteStrategy)包装了相关的算法或行为,实现Strategy接口的某个具体类。UML和设计模式5UML和设计模式6Context示意代码:publicclassContext{privateStrategystrategy;publicvoidcontextInterface()

3、{strategy.strategyInterface();}}UML和设计模式7Strategy示意代码:abstractpublicclassStrategy{publicabstractvoidstrategyInterface();}ContreteStrategy示意代码:publicclassConcreteStrategyextendsStrategy{publicvoidstrategyInterface(){//算法实现代码}}8.1.3策略模式的代码示例某网上商城举行促销活动:图书每本折扣1元,服装类8折,家居类9折,护肤品没折扣。顾客结算时,计算购

4、物车中所有商品的总金额。UML和设计模式8例子的策略模式示意代码DiscountStrategy代码:NoDiscountStrategy代码:FlatRateStrategy代码:PercentageStrategy代码:Context代码:Client代码:UML和设计模式9练习要设计一个系统,对输入的数据实现排序,系统提供几种排序方法。系统运行时根据用户选择的排序方法对数据进行排序。(另外,可能会常常增加新的排序算法、或删除某个算法)UML和设计模式108.2Bridge(桥接)模式UML和设计模式11开发游戏软件的例子需要开发一款太空大战游戏,该游戏可安装在PC

5、或手机上,不同平台上游戏的功能完全相同,并且有多种型号的太空船可供用户选择。存在的问题在PC和手机上的图形绘制、声效、游戏操作等方面的实现不同。经常需要增加新型的太空船。实现方案一:UML和设计模式12UML和设计模式13示意代码//抽象飞船基类publicabstractclassSpaceShip{publicabstractshot();publicabstractrun();//...}//各种型号飞船publicabstractclassSpaceShipT20extendsSpaceShip{...}publicabstractclassSpaceShipT

6、30extendsSpaceShip{...}publicabstractclassSpaceShipT50extendsSpaceShip{...}//不同平台飞船publicclassPCSpaceShipextendsSpaceShip{...}publicclassMobileSpaceShipextendsSpaceShip{...}8.2.1什么是Bridge模式Bridge模式将抽象和实现分离,使它们都可以独立的变化。Bridge模式是一种结构型模式,使用对象间的组合关系解耦了抽象和实现之间固有的绑定关系,使得抽象和实现可以沿着各自的维度来变化。一般应用在

7、“两个非常强的变化维度”,有时候即使有两个变化的维度,但是某个方向的变化维度并不剧烈,即当两个变化不会导致纵横交错的结果,并不一定要使用本模式。UML和设计模式14UML和设计模式15Bridge模式的类图Bridge模式中的角色抽象化(Abstraction):抽象化给出的定义,并保存一个对实现化对象的引用。修正抽象化(RefinedAbstraction):扩展抽象化角色,改变和修正父类对抽象化的定义。实现化(Implementor):给出实现化角色的接口。实现化角色只给出底层操作,而抽象化角色应只给出基于底层操作的更高一层的操作。具

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

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

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