设计模式
小飞将
一切过往,皆为序章
展开
-
链表结构的栈实现
Stack.h #pragma once template <class T> class Stack { public: virtual void clear() = 0; // clean the stack virtual void push(const T&) = 0; // push T into stack virtual void pop() = 0; // pop top item in stack virtual T& top() = 0;原创 2020-12-28 22:22:32 · 86 阅读 · 0 评论 -
设计模式3-装饰者模式
定义 动态地将责任附加到对象上。若要扩展功能,装饰着提供了比继承更有弹性的替代方案。 类图: C++实现(有问题待解决) Example part0, Decorator.cpp // Decorator.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <iostream> #include "Beverage.h" #include "Espresso.h" #include "Mocha.h" int main() { Beve原创 2020-11-26 19:32:54 · 101 阅读 · 0 评论 -
设计模式-2 观察者模式
观察者模式原创 2020-11-24 22:28:32 · 119 阅读 · 0 评论 -
设计模式-1 策略模式
定义 定义一组算法,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 实列 需要创建一个SimuDuck系统,模仿各种不同鸭子。不同种类的鸭子通常具有不同的外观,飞行,发声及游泳方式。 最初的实现: 因为不同类型的鸭子飞行和发声行为不同,绿头鸭和红头鸭会飞,橡皮鸭不会飞也不会叫,如果通过继承来对每一个具体类都重写这些方法造成的问题有: 1.代码在多个子类重复; 2.运行时无法改变子类的行为; 每个子类都重写fly和quack,有时鸭子不具有该行为,但也要重写。 使用策略模式的原创 2020-11-14 22:56:52 · 93 阅读 · 0 评论