设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编制真正工程化。设计模式提供了一套术语方便开发人员之间的交流,但是不能滥用设计模式,导致设计过度。
面向对象开发设计需要遵循一下的原则:
软件应当对扩展开放,对修改关闭。
这个原则反转两个字需要从设计的角度去理解,很多时候接口的抽象都依赖于具体的应用,导致增加一个具体应用就增加一个接口,这其实是不符合依赖倒转原则的。 依赖倒转原则的重要应用就是控制反转(Inversion of Control, IoC)一般分为两种类型,依赖注入(Dependency Injection, DI)和依赖查找(Dependency Lookup)。
一个类对另外一个类的依赖性应当是建立在最小的接口上。使用多个专门的接口比使用单一的总接口要好。
合成复用原则是指尽量使用合成/聚合,而不是使用继承。首先要区分区分Has-A和Is-A的关系,然后当满足以下的条件时,才使用继承关系。
每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。迪米特法则的初衷在于降低类之间的耦合。由于每个类尽量减少对其他类的依赖,因此,很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。
常用的设计模式可分为三种类型,分别为创建型模式、结构型模式和行为型模式。

百度百科 http://blog.csdn.net/longronglin/article/details/1454315