提示:文章
前言
前期疑问:
本文目标:
一、背景
备考时又看了设计模式相关的知识点,这次看的是设计模式7个原则,在这边整理一下。
参考文章:C++的7种设计模式原则
二、
1、开放封闭原则
2、(里氏替换原则x)依赖倒置原则
上层依赖接口,下层实现接口
其中这个原则实例代码中还涉及到 一个新的知识点,std::is_base_of。查了一下,
std::is_base_of模板的作用
std::is_base_of模板可以用来判断一个类是否是另一个类的基类。它返回一个std::true_type或std::false_type类型的std::integral_constant类实例。具体来说,在Derived公有继承Base的情况下,返回std::true_type;否则,返回std::false_type。
自己写个代码验证下
#include <iostream>
#include <type_traits>
class Base {};
class Derived : public Base {};
int IsBasicOf() {
std::cout << std::boolalpha;
std::cout << "Base is base of Derived: " << std::is_base_of<Base, Derived>::value << '\n';
std::cout << "Derived is base of Base: " << std::is_base_of<Derived, Base>::value << '\n';
return 0;
}
打印结果
Base is base of Derived: true
Derived is base of Base: false
3、迪米特原则
4、单一职责原则
感觉实例就是把HowDo原来处理3个行为拆分成了3个类,单独处理单一的行为。
三、
3.1
总结
未完待续