学习任何设计模式 我们都应该先学习设计模式八大设计原则 为什么呢? 因为设计模式必须依赖设计原则
依赖倒置原则是什么意思呢 高层模块和底层模块不能直接相关联 他们之间应该有一个抽象层 一套标准 比如操作系统给你提供的socket编程 这就是一个标准 他底层封装了各种协议 TCP UDP IP但是你在使用的时候 你仅仅需要按照他提供的接口进行编程 指定一些参数 然后就可以正常的跑起来 socket编程就是经典的应用层与传输层之间的抽象层 这样应用层只需要面向socket抽象层就可以进行网络编程 底层网络协议的具体实现也只需要对socket这个抽象层进行修改就可
开放封闭原则是什么意思呢 一个类在确定好了之后 最好是不要再去修改 他应该维持他本来就应该有的一些行为 具体实现你可以扩展 你可以继续继承然后重写他的虚函数来进行扩展 但是最好不要修改本身的属性和方法
这是什么意思呢 如图
试问哪一种方式更好呢? 明显是第二种 为什么呢 因为他存储的是一个基类的指针 而不是一个具体的类 他就可以选择不同的实现
这是最最最最最关键的一个设计原则 没有变化点的代码 是不需要任何设计模式的 因为你不用考虑可扩展性 可复用性 可移植性
这是一个很玄学的一条设计原则 作者也不能很快的给你说清楚 一个项目中稳定的点需要和不稳定的点实现层次分离 这个属实只能自己领会
一个类最好是只负责一种事情 不要有太多的功能 因为你一旦功能多了 变化也就多了 比如一个线程类 你只负责线程的执行终止等一系列线程的操作 但是具体我要实现什么函数 你别来参与
即子类必须要实现父类所要求的所有方法 不然有可能程序便会报错 如下代码 便有可能出事
class E
{
virtual int function1()
{
function2();
}
virtual int function2();
};
class F :public E
{
public:
int function2();
};
比如 一个冰箱类 他提供给用户的接口便是冷藏 至于到底是怎么冷藏的 不必让客户知道
这个设计原则就是字面意思 组合耦合度比继承耦合度低



