C#设计模式-策略模式.ppt
《C#设计模式-策略模式.ppt》由会员分享,可在线阅读,更多相关《C#设计模式-策略模式.ppt(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、www.ChinaSA.infoDDesign esign P Patternsatterns策略模式策略模式策略模式策略模式刘刘 伟伟(Sunny)www.ChinaSA.info大纲w策略模式概述w策略模式的结构与实现w策略模式的应用实例wPetShop 4.0中的订单处理w策略模式的优缺点与适用环境www.ChinaSA.info策略模式概述w旅游出行方式示意图www.ChinaSA.info策略模式概述w分析实现某个目标的途径不止一条,可根据实际情况选择实现某个目标的途径不止一条,可根据实际情况选择一条合适的途径一条合适的途径软件开发:软件开发:多种算法,例如排序、查找、打折等使用硬编
2、码(Hard Coding)实现将导致系统违背开闭原则,扩展性差,且维护困难可以定义一些独立的类来封装不同的算法,每一个类封装一种具体的算法策略类策略类www.ChinaSA.info策略模式概述w策略模式的定义对象行为型对象行为型模式模式策策略略模模式式:定义一一系系列列算算法法,将将每每一一个个算算法法封封装装起起来来,并让它们可以相互替换。策略模式让算法可以独立于使用它的客户变化。Strategy Pattern:Define a family of algorithms,encapsulate each one,and make them interchangeable.Strateg
3、y lets the algorithm vary independently from clients that use it.www.ChinaSA.info策略模式概述w策略模式的定义又称为又称为政策政策(Policy)模式模式每一个封装算法的类称之为每一个封装算法的类称之为策略策略(Strategy)类类策略模式提供了一种策略模式提供了一种可插入式可插入式(Pluggable)算法算法的实现的实现方案方案www.ChinaSA.info策略模式的结构与实现w策略模式的结构www.ChinaSA.info策略模式的结构与实现w策略模式的结构策略模式包含以下策略模式包含以下3个角色:个角色
4、:Context(环境类)Strategy(抽象策略类)ConcreteStrategy(具体策略类)www.ChinaSA.info策略模式的结构与实现w策略模式的实现典型的抽象策略类代码:典型的抽象策略类代码:abstract class AbstractStrategy public abstract void Algorithm();/声明抽象算法www.ChinaSA.info策略模式的结构与实现w策略模式的实现典型的具体策略类代码:典型的具体策略类代码:class ConcreteStrategyA:AbstractStrategy/算法的具体实现public override v
5、oid Algorithm()/算法Awww.ChinaSA.info策略模式的结构与实现w策略模式的实现典型的环境类代码:典型的环境类代码:class Contextprivate AbstractStrategy strategy;/维维持一个持一个对对抽象策略抽象策略类类的引用的引用public void SetStrategy(AbstractStrategy strategy)this.strategy=strategy;/调调用策略用策略类类中的算法中的算法public void Algorithm()strategy.Algorithm();www.ChinaSA.info策略模
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 设计 模式 策略
限制150内