外观模式(c++实现)
2021-02-14 22:17
标签:结果 inf href 依赖性 对象 lan null strong 开闭原则 外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 "大小姐" 发育 "赵云" 打野 "吕布" 抗压 "廉颇" 辅助 "甄姬" 中单 胜率 88 % "大小姐" 发育 "赵云" 抗压 "吕布" 打野 "廉颇" 辅助 "甄姬" 中单 胜率 40 % "大小姐" 发育 "赵云" 抗压 "吕布" 打野 "廉颇" 辅助 "甄姬" 中单 胜率 40 % 外观模式的优点 外观模式的缺点 外观模式(c++实现) 标签:结果 inf href 依赖性 对象 lan null strong 开闭原则 原文地址:https://www.cnblogs.com/wzxNote/p/12718427.html外观模式
模式定义
模式动机
UML类图
源码实现
#ifndef HERO_H
#define HERO_H
#include
#ifndef FACADE_H
#define FACADE_H
/************************************
* @brief : 用外观模式封装几个不同的子系统,
* 子系统的操作统一放到外观模式的方法去
* 峡谷系统安排:
* 外观类:游戏不同的阵容组合
* 英雄类:不同的英雄,可以打不同的位置
* 外观类组合不同的英雄,得到一个胜率值
* @author : wzx
* @date : 2020-04-17
* @project : Facade
*************************************/
#include "hero.h"
class Facade
{
public:
Facade();
~Facade();
double LineUpA();
double LineUpB();
double LineUpC();
private:
XiangXiang* m_XX;
ZhaoYun* m_ZY;
LvBu* m_LB;
LianPo* m_LP;
ZhenJi* m_ZJ;
};
#endif // FACADE_H
#include "facade.h"
#define DELEOBJECT(x) if(x == nullptr) { delete x; x = nullptr;}
Facade::Facade()
{
m_XX = new XiangXiang();
m_ZY = new ZhaoYun();
m_LB = new LvBu();
m_LP = new LianPo();
m_ZJ = new ZhenJi();
}
Facade::~Facade()
{
DELEOBJECT(m_XX);
DELEOBJECT(m_ZY);
DELEOBJECT(m_LB);
DELEOBJECT(m_LP);
DELEOBJECT(m_ZJ);
}
double Facade::LineUpA()
{
m_XX->FaYu();
m_ZY->DaYe();
m_LB->KangYa();
m_LP->FuZhu();
m_ZJ->ZhongDan();
return 0.88;
}
double Facade::LineUpB()
{
m_XX->FaYu();
m_ZY->KangYa();
m_LB->DaYe();
m_LP->FuZhu();
m_ZJ->ZhongDan();
return 0.40;
}
double Facade::LineUpC()
{
m_XX->FaYu();
m_ZY->DaYe();
m_LB->ZhongDan();
m_LP->KangYa();
m_ZJ->FuZhu();
return 0.60;
}
#include
优点
缺点