一、单一职责原则(SRP--Single-Responsibility Principle)
1.1 定义
就一个类而言,应该仅有一个引起它变化的原因。
1.2 参考资料
http://www.cnblogs.com/feipeng/archive/2007/03/02/661780.html
http://blog.csdn.net/yysyangyangyangshan/article/details/7329258
二、开放封闭原则(OCP--Open-Closed Principle)
2.1 定义
软件实体(类、模块、函数等)应该是可以扩展的,但是不可修改。 对于扩展是开放的,对于更改是封闭的。 关键是抽象,将一个功能的通用部分和实现细节清晰的分离开来。
2.2 参考资料
http://www.cnblogs.com/feipeng/archive/2007/03/02/661799.html
http://blog.csdn.net/yysyangyangyangshan/article/details/7332716
三、里氏替换原则(LSP--Lixkov Substitution Principle)
3.1 定义
子类型必须能替换掉他们的基本类型。 只要父类出现的地方子类就可以出现,而且替换为子类也不会产生任何错误或异常,使用者可能根本不需要知道是父类还是子类。 但是,反过来就不行了,有子类出现的地方,父类未必就能适应
3.2 参考资料
http://www.cnblogs.com/feipeng/archive/2007/03/02/661800.html
http://blog.csdn.net/yysyangyangyangshan/article/details/7339394
四、依赖倒置原则(DIP--Dependency Inversion Principle)
4.1 定义
抽象不应该依赖于细节。细节应该依赖于抽象。程序中所有的依赖关系都应该终止于抽象类和接口。针对接口而非实现编程。任何变量都不应该持有一个指向具体类的指针或引用。任何类都不应该从具体类派生。任何方法都不应该覆写它的任何基类中的已经实现了的方法。
4.2 参考资料
http://www.cnblogs.com/feipeng/archive/2007/03/02/661812.html
http://blog.csdn.net/yysyangyangyangshan/article/details/7342077
五、接口隔离原则(ISP--Interface Segregation Principle)/ 迪米特原则(Law of Demeter)
5.1 定义
二者都是限制类与类之间的通信。
迪米特原则:如果两个雷不必彼此通信,那么这两个类就不应该发生直接的相互作用。如果其中一个类需要调用另一个类的某个方法,可以通过第三者转发这个调用。其本意是,设计中要注意松耦合。
5.2 参考资料
接口隔离原则:http://www.cnblogs.com/feipeng/archive/2007/03/02/661827.html
迪米特原则:http://blog.csdn.net/yysyangyangyangshan/article/details/7345593
参考资料:
面向对象设计原则:http://www.cnblogs.com/feipeng/archive/2007/03/02/661840.html
设计模式与面向对象设计原则:http://blog.csdn.net/column/details/baiyangshudesign.html?page=1
其他相关资料:http://www.cnblogs.com/mailingfeng/archive/2012/09/13/2683246.html