1 / 44
文档名称:

软件设计模式简答总结.pptx

格式:pptx   大小:614KB   页数:44页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

软件设计模式简答总结.pptx

上传人:1557281760 2017/7/11 文件大小:614 KB

下载得到文件列表

软件设计模式简答总结.pptx

文档介绍

文档介绍:观察者模式
意图
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
别名
依赖,发布-订阅,模型-视图
动机
需要维护相关对象间的一致性,而各个类之间不必紧耦合
观察者模式
适用性
在以下任一情况下可以使用观察者模式:
1. 当一个抽象模型有两个方面,其中一个方面依赖于另一个方面,将这两者封装在独立的对象中以使他们可以各自独立地改变和复用
,而不知道具体有多少对象有待改变
,而它又不能假定其他对象是谁
观察者模式
效果

→目标与观察者之间的耦合最小化
可以单独复用目标对象而无需同时复用其观察者,反之亦然
可以增加观察者而无需更改目标对象
一个目标只知道它有一个观察者列表
目标不必知道观察者属于哪一个具体类;而每个观察者都实现更新接口
目标和观察者可属于不同的抽象层次
→支持事件广播
目标向所有已订阅的观察者发送通知
可在任何时刻增/删观察者
观察者模式
效果

→可能的通知层叠
观察者不必知道彼此的存在,要小心处理触发更新
→简单的更新接口要求观察者推断已变化的项
模板方法模式
意图
=>定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得不改变一个算法的结构即可重定义该算法的某些特定步骤。
动机
=>有时想要确定一个方法所使用的操作的顺序,但允许子类为其中一些操作提供它们自己的实现。
=>考虑:
模板方法模式
适用性
模板方法应用与以下情况:
=>一次性实现一个算法的不变部分,并将可变行为留给子类来实现。
=>集中各个子类中的公共行为并将其置入一个公共类(本例中是超类)中,以避免代码重复。这是“代码重构”的一个经典实例。
=>为控制子类扩展超类操作的方式,可定义在特定点调用“钩子”操作的模板方法,以允许在这些点进行扩展
模板方法是代码复用的基本技术
原则4-开-闭原则(OCP)
开-闭原则(The Open-Closed Principle):软件实体应当对扩展开放,对修改关闭
开-闭原则(OCP) 认为应试图设计出永远也不需要改变的模块。
为扩展系统的行为,能够添加新代码但不能修改已有代码。
符合OCP的模块需满足两个标准:
=>对扩展开放- 模块的行为可以被扩展,以满足新的需求。
=>对修改关闭- 不允许更改模块的源代码
如何实现开-闭原则?
=>抽象
=>多态
=>继承
=>接口
工厂方法模式
意图
=>定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
动机
=>考虑以下框架:
工厂方法模式
适用性
在下列情况下使用工厂方法模式:
=>一个类不能预期它必须创建的对象的类
=>一个类希望由其子类来指定它创建的对象
结构
工厂方法例 1
客户端也可以使用工厂方法:
本例中的工厂方法是createManipulator()