Bootstrap

设计模式七个原则c++

提示:文章

前言

前期疑问:
本文目标:


一、背景

备考时又看了设计模式相关的知识点,这次看的是设计模式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


总结

未完待续

;