一.单一职责
一个类中应该是一组相关性很高的函数、数据的封装
二.开闭原则
软件中的对象(类,模块,函数等)应该对于拓展开放的,对于修改是封闭的
解释:软件生命周期内,因为变化,升级维护等原因需要对旧代码去修改,此时可能会破坏已经测试过的旧代码,所以,应该尽量去通过拓展来修改代码,而不是通过修改旧代码来实现。
其实在现实中,修改原有代码和拓展代码是同时存在的。
三.里氏替换
所有引用基类的地方必须能透明的使用其子类的对象
解释:只要父类能出现的地方,子类都可以出现,而且替换成子类也不会有问题
总结:抽象
四.依赖倒置
1.高层模块不依赖于低层模块,两者都依赖于抽象
2.抽象不依赖于细节
3.细节依赖于抽象
解释:模块之间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或者抽象类产生的
其实,可以理解为面向接口编程,或者叫面向抽象编程
五.接口隔离原则
让客户端依赖的接口尽可能的小
原文:http://www.cnblogs.com/wufeng0927/p/5189686.html