大话设计模式
是阿毛啊
这个作者很懒,什么都没留下…
展开
-
大话设计模式9—观察者模式(通知者与观察者)
大话设计模式9—观察者模式(老板回来,我不知道)1.需求:老板回来,我不知道2.双向耦合的设计2.1 前台秘书类2.2 看股票同事类2.3main函数及输出3.解耦修改3.1 抽象观察者类3.2 前台秘书类2.3main函数4.观察者模式实现5.观察者模式61.需求:老板回来,我不知道假设同事1、同事2上班摸鱼炒股,为了防止老板发现,如果前台发觉老板回来迅速打电话告知两位同事。2.双向耦合的设计根据需求,可以设计两个类前台秘书类class Secretary和看股票同事类class StockObs原创 2020-12-29 22:43:16 · 585 阅读 · 0 评论 -
大话设计模式8—建造者模式(建造小人)
大话设计模式8—建造者模式(建造小人)1.需求:建造小人2.普通实现3.建造者模式实现4.建造者模式1.需求:建造小人假设需要使用画笔和图片画两个小人,小人只需要包含头部、身体和腿就可以。这两个小人一个是瘦人、一个是胖子。现给出画笔和图片两个类如下:class Pen {public: Pen();};class Graphics {public: Graphics();};构造函数Pen::Pen() { cout << "use yellow pen" <原创 2020-12-22 23:48:40 · 371 阅读 · 0 评论 -
大话设计模式7—外观模式(基金投资)
大话设计模式7—外观模式(基金投资)1.需求:基金投资2.普通实现3.外观模式实现4.外观模式1.需求:基金投资假设股民投资炒股票有两只股票、国债、房地产可以投资,请设计一个类,包含每一项的买入卖出功能。2.普通实现按照需求代码结构图如下,分别对股票、国债、房地产设计多个类,每个类有两个成员函数,买入和卖出。#ifndef INVESTMENT_H#define INVESTMENT_H#include<iostream>using namespace std;class原创 2020-12-15 23:48:02 · 221 阅读 · 0 评论 -
大话设计模式6—模板方法模式(考试抄题)
大话设计模式6—模板方法模式(考试抄题)1.需求:考试抄题2.普通实现3.模板方法模式实现4.模板方法模式1.需求:考试抄题假如某考试只有选择题,试卷题目相同,不同的题目每人选择不同,请设计试卷类,包括三道题目,并给出甲乙两人的答案。如下为输出,共两道题两个学生选择各不相同2.普通实现由于甲乙两个人选择题答案并不相同,可以设计两个试卷类。试卷类只有三个成员函数即试题1、试题2、试题3的题目及所选答案甲的试卷类如下:#ifndef TESTPAPERA_H#define TESTPAPER原创 2020-12-14 23:20:19 · 210 阅读 · 0 评论 -
大话设计模式5—原型模式(简历复印)
大话设计模式5—原型模式1.需求:简历复印2.普通实现(1)常规做法(2)憨批做法3.原型模式4.实现1.需求:简历复印设计一个简历类,要求包含姓名、性别、年龄,此外能够设计工作经历(公司名和工作时间),最终需要一个人三份不同的简历,如下图所示。2.普通实现(1)常规做法简历类包含的变量有姓名、性别、年龄、公司名、工作时间,构造函数负责初始化变量名字,此外还有三个成员函数分别进行设置个人信息、设置工作经历和打印简历。那么题设需求只需要实例化三次就行。Resume类#ifndef RESUME原创 2020-12-12 00:03:43 · 270 阅读 · 0 评论 -
大话设计模式4-代理模式
1.需求:设计代理设计代理替代追求者向被追求者送玩偶、送花、送巧克力。分析:追求者类和代理类都应该拥有送礼物的接口,只不过代理类送的礼物实际是追求者送的2.实现(1)被追求者类被追求者Schoolgirl类只有name这一成员变量,两个成员函数是设置name和获取name。class Schoolgirl {private: string name;public: string getName() { return name; } void setName(string str原创 2020-10-08 22:20:42 · 117 阅读 · 0 评论 -
大话设计模式2-策略模式(商场促销)
大话设计模式2-策略模式1.需求:商场促销2.简单工厂实现3.策略模式4.策略模式与简单工厂的结合5.反思1.需求:商场促销商场有不同的促销情况,可以打折、满减以及不促销2.简单工厂实现简单工厂实现可以①设计一个收费抽象类,交给子类去重写#pragma onceclass cashSuper {public : virtual double acceptCash(double money) { return money; }};②再定义正常收费、满减、打折三个子类。正常收费原创 2020-10-08 14:23:43 · 266 阅读 · 0 评论 -
大话设计模式1-简单工厂
大话设计模式1-简单工厂1.需求:设计一个计算器2.普通实现2.存在问题3.简单工厂1.需求:设计一个计算器需要支持加减乘除四种运算2.普通实现设计一个Operation类,根据输入的数字和运算符确定执行什么操作class Operation {public: double GetResult(double numA, double numB, char oper) { double res = 0.0; switch (oper) { case '+': res原创 2020-10-08 13:36:53 · 79 阅读 · 0 评论