可复用面向对象的软件设计

来源:互联网 发布:淘宝折800报名入口 编辑:程序博客网 时间:2024/05/18 20:37

这里写图片描述

1.什么是设计模式?
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
一般模式包含四要素:
(1)名称
用词语来描述模式的问题,解决问题及效果,设计模式允许在更高抽象层次上进行设计。名称便于交流和文档的编写
(2)问题
描述使用时的动机,解释了设计问题和问题存在的前因后果。
(3)解决方案
描述设计的组成部分,他们之间的相互关系,各自的职责及相互协作的方式
(4)效果
模式的应用效果和使用模式应该权衡的问题,效果包含对系统的灵活性,扩展性及移植性
2.设计模式编目
设计模式编目

2.1模式及使用时机
(1)抽象工厂:提供一个创建一系列相关或依赖对象的接口,无须指定他们具体的类
(2)适配器:将一个类的接口转换成客户希望的另一个接口,使原本不兼容的类一起工作
(3)桥接:使抽象部分和实现部分离,使他们能够独立的变化
(4)生成器:将一个复杂对象的构建和它的实现部分分离,使同样的构建过程可以创建不同的表示
(5)职责链:为解除请求者和发送者之间的耦合,从而使多个对象都能处理这个请求。将这些对象连成一条链,沿着连传递请求,直到有对象请求它为止
(6)命令:将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可取消的操作
(7)组成:将对象组合成树形结构用来表示“整体-部分”的层次结构,使客户对单个对象和复合对象的使用具有一致性
(8)装饰:动态的给一些对象添加一些职责,就扩展而言,比生产子类更灵活
(9)外观:为子系统中的一组接口提供一致的界面,该模式定义了一个高级接口,使子系统更容易使用
(10)工厂方法:定义一个用于创建对象的接口,让子类决定将哪一个类实例化,是一个类的实例化延迟到子类。
(11)享元:使用共享技术有效地支持大量细粒度的对象。
(12)解释器:给定一个语言,定义它文法的一种表示,及一个解释器,解释器使用这个表示来解释语言中的句子。
(13)迭代器:提供一种方法顺序访问一个聚合对象中的元素,而不暴露该对象内部的表示。
(14)中介者:用一个中介者对象来封装一系列的对象交互,使各个对象时间不需要显示的引用,从而使耦合松散,独立地改变他们之间的交互。
(15)备忘录:在不破坏封装性的前提下,捕获一个对象的内部状态,在对象之外保存该对象的状态,利于对象恢复到保存时的状态。
(16)观察者:定义对象之间一对多的依赖关系,以便于一个对象的状态发生变化时,所有依赖于它的对象都能够得到通知并实现刷新。
(17)原型:用原型来指定创建对象的种类,并通过拷贝原型来创建新的对象。
(18)代理:为其他对象提供一个代理,来控制对这个对象的访问。
(19)单件:保证一个类只有一个实例,并提供一个访问它的全局访问点。
(20)状态:允许一个对象在内部状态改变时改变对象的行为。类似于修改了所属类
(21)策略:定义一系列的算法,把他们一个个封装起来,并且使他们能够相互替换,使算法能够独立于使用它的客户
(22)模板方法:定义一个操作中的算法骨架,而将一些步骤延迟到子类,使子类不改变算法结构的前提下重新定义算法中的一些特定步骤。
(23)访问者:表示一个作用于某对象结构中的个元素操作,它是你在不改变这些元素类前提下定义于这些元素的新操作

原创粉丝点击