1. 设计原则 C++
1.1 依赖倒置原则(DIP)
-
高层模块(稳定)不应该依赖于低层模块(变化),两者都应该依赖于抽象(稳定)。如果一个稳定的依赖于一个会变化的(不稳定的),可想而知,也会变得不稳定。
这种就是违背 DIP 。好的设计应该下面这样。
-
抽象(稳定)不应该依赖于实现细节(变化),实现细节应该依赖于抽象(稳定)。
举一个例子,如果我们设计一个画图软件(MainForm)。有两种情况。
第一种,如果该软件中目前可以画两种图形,一种是线(Line),一种是矩形(Rect)。而这个 MainForm 依赖 于 Line 和 Rect。
Line 和 Rect 都是一个类,它们各自类中有各自画各自图形的方法。而 MainForm 要画的图形的时候,都需要先去创建对应的 Line 和 Rect 对象,而且当对象多时,还需要有对应的容器来装对应的对象。例如,
//注意:本节的代码会尽量简短,只写一些主要的,其他的默认有。
vector<Line> a;
vector<Rect> b;//然后要再分别对两个容器中的每个对象都去调用对应的画图方法
for(int i = 0;i < a.size(); i++)
{a[i].DrawLine();
} for(int i = 0;i < b.size()