1、开闭原则(Open Close Principle)
一个软件实体应当对扩展开放,对修改关闭 ,需求改变时我们可以对模块进行扩展,使其具有新的功能,对更改是封闭的,对模块扩展时,不需要改动原来的代码。面对抽象而不是面对细节!
2、依赖倒转原则
依赖抽象,而不依赖具体(实现),抽象更灵活
3、迪米特法则
一个软件实体应当与尽可能少的其他实体发生相互作用,如果这些模块是相对孤立的,那么它们就不会将修改的压力传递给其他的模块。
4、 接口隔离原则
应当为客户端提供尽可能小的接口,而不要提供大的总接口,不能强迫客户端定义自己不需要的方法。显然,接口隔离原则与广义的迪米特法则都是对一个软件实体与其他的软件实体的通信限制。广义的迪米特法则要求尽可能的限制通信的宽度和深度。接口隔离原则所限制的是通信的宽度
(引用出处:http://www.cnblogs.com/zhangsk/archive/2008/06/13/1219486.html)