--------单一职责
class 模块尽量 功能单一 逻辑简单可读性高
--------开闭原则
鼓励增加、扩展接口
不允许修改 已有代码实现 新需求
抽象类设计的越合理 该特性越鲜明
--------里氏替换原则(子类完全替换基类违反了继承的设计原则)
为了让引用基类的地方可以透明管的使用子类
子类不可以重写父类的非 virtual方法
如果 非要从重写请变参数,目的是不破坏基类
--------
Class Father
public void test(HashMap map){
class Son
public void test(Map map){
这个原则的目的就是尽量保证基类的方法和成员高度受保护
--------依赖倒置原则
高层模块不应该依赖底层模块,两者都应该依赖其抽象;
抽象不应该依赖细节;
细节应该依赖抽象;
怎么理解???
面向接口编程
--------接口隔离原则
客户端不应该依赖它不需要的接口
接口设计原则:
只留下有用的
C++模块对外通过C接口
--------迪米特原则
一个对象应该对其他对象有最少的了解
设计有限接口,debug也会很好定位问题
如果两个类不直接通信,那么这两个类就不应该发生直接的相互作用。
如果一个类需要调用另一个类的某个方法的话, 可以通过第三个类转发这个调用如果两个类不直接通信,那么这两个类就不应该发生直接的相互作用。如果一个类需要调用另一个类的某个方法的话, 可以通过第三个类转发这个调用