目录
1设计模式定义
设计模式是在环境下为解决某一通用软件设计问题提供的一套定制的解决方案,该方案描述了对象和类之间的相互作用。
2设计模式的基本要素
设计模式一般包含模式名称、问题、目的、解决方案。
2.1模式名称
根据模式的功能或模式结构命名。
2.2问题
包含原始设计中存在的问题以及问题存在的原因。
2.3解决方案
用UML类图提供设计问题的抽象描述,用核心代码用类或对象的组合解决这个问题。
2.4效果
模式的应用情况以及在使用模式时应该权衡的问题。
3学习设计模式的过程
3.1模式概述
通过一些简单的问题引出一个设计模式,介绍模式的动机和意图,以及模式的定义。
3.2模式的结构与实现
分析类图和相关角色,介绍模式解决方案的组成以及各组成部分之间的关系,并结合实力代码对模式结构和角色进行进一步说明。
3.3模式的应用实例
通过一个来源于软件开发领域的实例对模式进行深入解析,学习如何在实际开发中应用模式。
3.4模式的扩展
对模式的一些改进方案,如对模式功能的增强和简化,与其他模式的联用,模式的编译和其他扩展内容。
3.5模式的优缺点与使用环境
分析模式的优缺点,了解模式的适用环境。
4模式的分类
根据目的,划分为创建型、结构型、行为型三类。
根据范围,即模式主要是处理类之间的关系还是对象之间的关系,分为类模式和对象模式。
4.1创建型用于创建对象
工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式
4.2结构型用于处理类或对象的组合
适配器模式、桥接模式。组合模式、装饰模式、外观模式、享元模式、代理模式
4.3行为型用于描述类类之间或对象和对象之间如何分配职责。
解释器模式、模块方法模式、职责链模式、命令模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、访问者模式。
5面向对象设计原则
软件的可维护性和可复用性是两个相当重要的用于平衡软件质量的质量属性,软件的可维护性是指软件能够被理解、改正、适应及扩展的难易程度,软件的可复用性是指软件能够被重复使用的难易程度。
单一职责原则
一个对象应该只包含单一的职责,并且被完整的封装到一个类中。
开闭原则
对于扩展开放,对修改关闭。
里氏代换原则
能引用其基类的地方必须能透明地使用其子类的对象。
依赖倒转原则
高层模块不应该依赖底层模块,底层模块更不应该依赖高层模块,他们都应该依赖抽象模块。抽象不依赖于细节,细节依赖于抽象。
接口隔离原则
客户端不应该依赖那些它不需要的接口。
合成复用原则
优先使用对象组合,而不是继承来达到复用的目的。
迪米特法则
每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。