- 59
- 0
- 约3.23千字
- 约 24页
- 2018-07-05 发布于天津
- 举报
ConcreteStrategy上下文Context策略模式的UML类图
* 第8章几个重要的设计模式 * 主要内容 设计模式简介 策略模式 中介者模式 模板方法模式 难点 策略模式 导读 一个好的设计系统往往是易维护、易扩展、易复用的 。 设计模式从一些优秀的设计系统中总结出的设计精髓,因此学习设计模式对提高设计能力无疑是非常有帮助的。 可以是通过讲解设计模式体现面向对象的设计思想,这非常有利于更好地使用面向对象语言解决设计中的诸多问题。 * §8.1 设计模式简介 §8.1.1 什么是设计模式 一个设计模式(pattern)是针对某一类问题的最佳解决方案,而且已经被成功应用于许多系统的设计中,它解决了在某种特定情景中重复发生的某个问题,即一个设计模式是从许多优秀的软件系统中总结出的成功的可复用的设计方案。 * §8.1.2 学习设计模式的必要性 学习并使用模式能使设计的系统易维护、可扩展性强、复用性好。 学习设计模式不仅可以使我们了解、正确使用设计模式,更重要的是可以使我们更加深刻地理解面向对象的设计思想,非常有利于我们更好地使用面向对象语言解决设计中的诸多问题。 * §8.1.3 什么是框架 框架是针对某个领域,提供用于开发应用系统的类的集合,程序设计者可以使用框架提供的类设计一个应用程序,而且在设计应用程序时可以针对特定的问题使用某个设计模式。 框架与模式相比: 1.层次不同 2.范围不同 3.相互关系密切 * §8.2 策略模式 §8.2.1 概述 基于“面向抽象编程”的原则就容易使设计的类应对用户需求的变化,使得设计的系统满足“开-闭”原则。 * §8.2.2 策略模式的定义 策略模式的定义:定义一系列算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。 * §8.2.3 模式的结构 在策略模式中,封装算法标识的接口称作策略,实现该接口的类称作具体策略。 角色:策略(Strategy),具体策略(ConcreteStrategy),上下文(Context)。 策略模式的UML类图 3.结构的描述 : 策略(Strategy) →Computable.java 具体策略(ConcreteStrategy) →StrategyOne.java , StrategyTwo.java, StrategyThree.java 上下文(Context) →GymnasticsGame.java * §8.2.4 模式的使用 应用程序Application.java中使用了策略模式中(8.2.3)所涉及的类,应用程序在使用策略模式时,需要创建具体策略的实例,并传递给上下文对象。 * §8.2.5 策略模式的优点 ◆上下文(Context)和具体策略(ConcreteStrategy)是松耦合关系。因此上下文只知道它要使用某一个实现Strategy接口类的实例,但不需要知道具体是哪一个类。 ◆策略模式满足“开-闭原则”。当增加新的具体策略时,不需要修改上下文类的代码,上下文就可以引用新的具体策略的实例。 * §8.2.6 适合使用策略模式的情景 ◆一个类定义了多种行为,并且这些行为在这个类的方法中以多个条件语句的形式出现,那么可以使用策略模式避免在类中使用大量的条件语句。 ◆程序不希望暴露复杂的、与算法相关的数据结构,那么可以使用策略模式封装算法。 ◆需要使用一个算法的不同变体。 * §8.2.7 策略模式相对继承机制的优势 策略模式采用的是组合方法,即将一个类的某个方法的内容的不同变体分别封装在不同的类中,而该类仅仅依赖这些类所实现的一个共同接口。 * §8.3 中介者模式 §8.3.1 概述 中介者模式体现了 “多用组合,少用继承”和“低藕合”原则,尤其体现了怎样合理地使用组合。 * §8.3.2 中介者模式的定义 中介者模式的定义:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 * §8.3.3 模式的结构 角色:中介者(Mediator),具体中介者(ConcreteMediator ),同事(Colleague),具体同事(ConcreteColleague)。 中介者模式的UML类图 3.结构的描述 : 同事(Colleague) →Colleague.java 具体中介者(Mediator)→ConcreteMediator.java 具体同事(
您可能关注的文档
- CLAP平台的定义与定位-华中科技大学图书馆.PPT
- ISO90003质量管理的方法根据和工作思路——PDCA循环4执行阶段.PPT
- IHE解决互连标准实现相互操作的医疗服务信息平台.PPT
- IPMT开发验证发布生命周期.PPT
- IVR3智能路由4分布式座席5.PPT
- KarenCarter陶氏化学建筑事业亚太区及印度总经理创新合作.PPT
- M神经细胞中的狂犬病毒.PPT
- 2017年南平初中生物学科毕业班教师培训研讨会在南平召开.DOC
- not非LifeANDScience表示在所有字段中检索.PPT
- PDCA循环-兰州大学第二医院.PPT
- 中国国家标准 GB/T 6675.9-2025玩具安全 第9部分:化学及类似活动的实验玩具.pdf
- 《GB/T 6675.9-2025玩具安全 第9部分:化学及类似活动的实验玩具》.pdf
- GB/T 46975-2025婴童用品 便携式婴儿睡篮技术要求.pdf
- 中国国家标准 GB/T 46975-2025婴童用品 便携式婴儿睡篮技术要求.pdf
- 《GB/T 46975-2025婴童用品 便携式婴儿睡篮技术要求》.pdf
- 《GB/T 6675.14-2025玩具安全 第14部分:指画颜料要求和测试方法》.pdf
- GB/T 6675.14-2025玩具安全 第14部分:指画颜料要求和测试方法.pdf
- 中国国家标准 GB/T 6675.14-2025玩具安全 第14部分:指画颜料要求和测试方法.pdf
- 中国国家标准 GB/T 33772.3-2025质量评定体系 第3部分:印制板及层压板最终产品检验及过程监督用抽样方案的选择和使用.pdf
- 《GB/T 33772.3-2025质量评定体系 第3部分:印制板及层压板最终产品检验及过程监督用抽样方案的选择和使用》.pdf
原创力文档

文档评论(0)