单一职责原则

每个模块只做一件事 (类根绝业务切分可大可小,并不是说越细越好)

开闭原则

对扩展开放,对修改关闭。修改程序时,不需要修改类内部代码就可以扩展类的功能

里式替换原则

任何基类出现的地方,都可以用派生类替换

依赖倒置原则

针对接口(纯虚函数)编程,而非针对实现编程

接口分离原则

接口功能的粒度应该尽可能小

共同封装原则

一同变更的类应该合在一起

共同复用原则

不能一起被复用的类不能被分到一组