收藏 分享(赏)

24-c#设计模式-策略模式.ppt

上传人:cjc2202537 文档编号:980197 上传时间:2018-05-12 格式:PPT 页数:23 大小:2.83MB
下载 相关 举报
24-c#设计模式-策略模式.ppt_第1页
第1页 / 共23页
24-c#设计模式-策略模式.ppt_第2页
第2页 / 共23页
24-c#设计模式-策略模式.ppt_第3页
第3页 / 共23页
24-c#设计模式-策略模式.ppt_第4页
第4页 / 共23页
24-c#设计模式-策略模式.ppt_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、Design Patterns,策略模式,刘 伟 (Sunny)weiliu_,大纲,策略模式概述策略模式的结构与实现策略模式的应用实例PetShop 4.0中的订单处理策略模式的优缺点与适用环境,策略模式概述,旅游出行方式示意图,策略模式概述,分析实现某个目标的途径不止一条,可根据实际情况选择一条合适的途径软件开发:多种算法,例如排序、查找、打折等使用硬编码(Hard Coding)实现将导致系统违背开闭原则,扩展性差,且维护困难可以定义一些独立的类来封装不同的算法,每一个类封装一种具体的算法策略类,策略模式,策略模式概述,策略模式的定义对象行为型模式,策略模式概述,策略模式的定义又称为政策

2、(Policy)模式每一个封装算法的类称之为策略(Strategy)类策略模式提供了一种可插入式(Pluggable)算法的实现方案,策略模式的结构与实现,策略模式的结构,策略模式的结构与实现,策略模式的结构策略模式包含以下3个角色:Context(环境类)Strategy(抽象策略类)ConcreteStrategy(具体策略类),策略模式的结构与实现,策略模式的实现典型的抽象策略类代码:,策略模式的结构与实现,策略模式的实现典型的具体策略类代码:,策略模式的结构与实现,策略模式的实现典型的环境类代码:,策略模式的结构与实现,策略模式的实现典型的客户端代码片段:,策略模式的应用实例,实例说明

3、,策略模式的应用实例,实例类图,电影票打折方案结构图,策略模式的应用实例,实例代码(1) MovieTicket:电影票类,充当环境类(2) Discount:折扣类,充当抽象策略类(3) StudentDiscount:学生票折扣类,充当具体策略类(4) ChildrenDiscount:儿童票折扣类,充当具体策略类(5) VIPDiscount:VIP会员票折扣类,充当具体策略类(6) 配置文件App.config(7) Program:客户端测试类,演示,参考代码 (DesignPatternStrategySample),策略模式的应用实例,结果及分析如果需要更换具体策略类,无须修改源

4、代码,只需修改配置文件即可,完全符合开闭原则,PetShop 4.0中的订单处理,PetShop 4.0的BLL(Business Logic Layer,业务逻辑层)子项目局部结构,PetShop订单策略类结构图,PetShop 4.0中的订单处理,配置文件web.config代码片段:,策略模式的优缺点与适用环境,模式优点提供了对开闭原则的完美支持,用户可以在不修改原有系统的基础上选择算法或行为,也可以灵活地增加新的算法或行为提供了管理相关的算法族的办法提供了一种可以替换继承关系的办法可以避免多重条件选择语句提供了一种算法的复用机制,不同的环境类可以方便地复用策略类,策略模式的优缺点与适用环境,模式缺点客户端必须知道所有的策略类,并自行决定使用哪一个策略类将造成系统产生很多具体策略类无法同时在客户端使用多个策略类,策略模式的优缺点与适用环境,模式适用环境一个系统需要动态地在几种算法中选择一种避免使用难以维护的多重条件选择语句不希望客户端知道复杂的、与算法相关的数据结构,提高算法的保密性与安全性,思考,在策略模式中,一个环境类Context能否对应多个不同的策略等级结构?如何设计?,END,Thanks!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报