单一职责原则—优化代码的第一步
通俗的说就是一个类之专注一个功能的实现。这里的单一职责的判断是根据个人经验、具体的业务逻辑而定的。但是也有一些基本的指导原则,例如两个完全不一样的功能就不应该放在一个类中。一个类中应该是相关性很高的函数、数据的封装。
开闭原则—让程序更稳定、更灵活
项目中的类、模块等,对于扩展是开放的,但是对于修改是封闭的。我个人理解,一个优秀的项目扩展功能应该是通过扩展原来的代码,而不是直接修改原来的类、方法。
里氏替换原则—构建扩展性更好的系统
所有引用父类的地方都能够透明的使用其子类的对象。
依赖倒置原则—让项目拥有变化的能力
- 高层模块不应该依赖底层模块,两者都应该依赖其抽象
理解:不同模块,不同类之间的关系都应依赖于抽象 - 抽象不应依赖于细节
- 细节应该依赖于抽象
理解:2,3好像本来就是抽象的定义..
接口隔离原则—让系统有更高的灵活性
类于类直接的依赖应该建立在最小接口上
迪米特原则—更好的扩展性
一个对象应该对其他对象有最少了解。可以在其依赖的类有变动时,将影响降低到最小。