外观模式
#include <iostream>#include <list>
using namespace std;
// 外观模式
namespace facade_pattern {
// 目标属性
struct target
{
string name;
double x;
double y;
double z;
};
// 人物移动
class move
{
public:
void person_move(double x, double y, double z) {
printf("移动\n");
}
};
// 人物攻击
class attack
{
public:
void person_attack(string name) {
printf("攻击\n");
}
};
// 人物拾取
class pick
{
public:
void person_pick() {
printf("拾取\n");
}
};
// 脚本
class script
{
public:
void start(const target &t) {
m.person_move(t.x, t.y, t.z);
a.person_attack(t.name);
p.person_pick();
}
private:
move m;
attack a;
pick p;
};
}
// 可以看出外观模式非常直观 通过一个辅助类 实现解偶 如果模块较多、相互之间比较紧密 可以考虑
int main(void)
{
using namespace facade_pattern;
script s;
target t;
t.name = "大龙";
t.x = 50;
t.y = 100;
t.z = 1.5;
s.start(t);
return 0;
} 请问楼主是想在黑窗口展示吗?还是外接一个GUI?
页:
[1]