1.单一职责原则
每个函数或者功能块只有一个职责,只有一个原因会使其改变。个人理解就是划分好函数职责,不要把一堆功能写到同一个函数里头,达到一个功能与功能之间的解耦
2.开闭原则
对于扩展是开放的,对于修改是封闭的。在c++面向对象设计技术时,可以设计一个抽象基类,由于派生类依赖于一个固定的抽象类,对于该派生类的更改的关闭的,对于新模块的扩展是开放的。
3.依赖倒置原则
高层模块不依赖与低层模块,二者都应该依赖于抽象。高层依赖于低层,意味着低层模块的改动会直接影响到高层,从而迫使高层依次要做出改动,使得高层模块再重用变得困难。个人理解就是不变的业务依赖于变化的业务,可使代码重用度高。
4.接口隔离原则
使用多个专门的接口,而不使用单一的总接口。面向对象开发时,继承的基类中包含本不需要的接口,原本特定需求扩展的接口成了通用,导致所有派生类都要去实现没有意义的接口,即为接口污染。个人理解就是不要把不通用的接口写到抽象基类里,省得有些用不到该接口的派生类还要去实现它。
5.最少知道原则
对于被依赖的子功能,无论逻辑多么复杂,都尽量将逻辑封装在内部。也就是说,使用某个子模块,不需要关注其内部实现,调用尽可能少的API接口。个人理解就是对外提供接口尽可能简单,不要把内部实现过分对外暴露。