吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1016|回复: 1
收起左侧

[讨论] 外观模式

[复制链接]
古月不傲 发表于 2020-11-16 16:47
[C++] 纯文本查看 复制代码
#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;
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沉默之剑 发表于 2020-11-16 17:23
请问楼主是想在黑窗口展示吗?还是外接一个GUI?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 11:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表