装饰器模式

装饰模式又叫包装模式,通过一种对客户端透明的方式来扩展对象功能,是继承关系的一种替代。 装饰模式可以动态给一个类增加功能

February 2, 2022 · 1 min · Rick Cui

观察者模式

观察者模式是用于建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应作出反应。在观察者模式中,发生改变的对象称为观察目标,而被通知的对象称为观察者。

February 2, 2022 · 1 min · Rick Cui

命令模式

将一个请求封闭为一个对象,从而让我们可用不同的请求对客户进行参数化;对请求排队或者记录日志,以及支持可撤销的操作。命令模式是一种对象行为型模式,其别名为动作(Action)模式或事务(Transaction)模式。 命令模式可以将请求者和接收者完全解耦,发送者与接收者之间没有直接引用关系,发送请求的对象只需要知道如何发送请求,而不必知道如何完成请求

February 2, 2022 · 1 min · Rick Cui

策略模式

策略模式定义了一系列的算法,并将每个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。

February 1, 2022 · 1 min · Rick Cui

模板方法模式

定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 class TemplateDrink{ public: virtual void boilWater() = 0; virtual void drew() = 0; virtual void pourCup() = 0; virtual void addSomething() = 0; void make(){ boilWater(); drew(); pourCup(); addSomething(); } }; class Tea : public TemplateDrink{ public: void boilWater() override{ cout << "煮山泉水..." << endl; } void drew() override{ cout << "冲龙井茶..." << endl; } void pourCup() override{ cout << "倒入茶杯中..." << endl; } void addSomething() override{ cout << "加点柠檬....

February 1, 2022 · 1 min · Rick Cui