对通用的对象间的相互作用方式进行记录和编目。
设计模式描述对象如何进行通信才能不牵涉相互的数据模型和方法。
努力使对象只涉及各自的业务。
理解:对象只涉及自己的业务,设计模设来处理对象之间的通信,并保证各个对象之间的通信不涉及相互对象的数据模型和方法。设计模式使得对象代码的复用变得简单,使对象得以独立完成自己的业务逻辑。
Design Patterns :Elements of Reusable Software
Gang of Four
GoF
通过维持对象的独立性,找到对象通信的有效方式。
一些定义:
1 设计模式是对读者经常遇到的设计问题的可再现的解决方案
2 设计模式建立了一些列描述如何完成软件开发领域中特定任务的规则
3 设计模式更关注复用可重复出现的结构设计方案,而框架更注重于具体设计和实现。
4 模式提出了一个发生在特定设计环境中的可重复出现的设计问题,并提供解决方案
5 模式识别并确定类和实例层次上或组件层次上的抽象关系
理解:设计模式是一种解决方案,用于解决经常出现的设计问题,描述如何用特定的解决方案更有效的解决特定的任务,设计模式只是一种抽象的方法,提供一种解决问题的方案,它不关心问题解决得具体实现。
设计模式不仅仅局限于对对象的设计,还涉及到对象之间的相互作用,从某种意义上来说,某些模式可以看做通信模式。
1 创建型模式:创建对象而不是直接实例化对象,使程序在判定给定情况下创建哪一个对象时更为灵活。
2 结构型模式:可以将一组对象合成更大的结构,比如复杂的用户界面或报表数据
3 行为型模式:定义系统内对象间的通信,以及复杂程序中的流程控制
理解:创建型模式理解为如何创建适合特定情况的对象,结构型模式理解为多个独立的对象组合成更大结构的方法,行为型模式理解为如何在对象之间进行有效的通信。
接受---认可---领会
接受设计模式对自己的工作很重要,认识到需要学习设计模式,才能知道什么时候使用合适的设计模式,应用以后,要充分消化模式的细节,领会模式的真正内涵,应用到下一个相似的场景。
使用设计模式的根本是为了保持类之间的阻隔,防止相互之间了解太多的内容,使用设计模式可以避免重复开发。
针对接口编成:在任何类层次结构的顶端,定义一个抽象类或者一个接口,它没有实现方法,只定义该类需要支持的方法。所有的派生类可以更大自由度的去实现这些方法,最大限度地满足你的要求。
理解:定义接口,派生子类,接口定义方法,子类实现方法,充分发挥子类的自由度,最大程度上实现需求。
对象组合:将几个对象封装在另一个对象中,新的对象拥有一个最适合于要完成的目标的接口,而不是拥有父类中的所有方法。
使用对象组合优先于继承。