代理模式-c++

#include <iostream>
#include<memory>
using namespace std;

class play {
public:
    virtual void play1() = 0;
    virtual void play2() = 0;
};
class player : public play {
public:
    void play1() {
        cout << "年龄在25-30之间" << endl;
    }
    void play2() {
        cout << "漂亮" << endl;
    }
};
//未成年
class proxyPlayer1 : public play {
public:
    proxyPlayer1() {
        
        m_player = new player();
    }
    void play1() {
        cout << "未成年不得早恋!" << endl;
    }

    void play2() {}

private:
    player* m_player;
};
//成年
class proxyPlayer2 : public play {
public:
    proxyPlayer2() {
        m_player = new player();
    }
    void play1() {
        m_player->play1();
    }

    void play2() {
        m_player->play2();
    }
private:
    player* m_player;
};
int main()
{
    cout << "您的要求为:"<<endl;
    proxyPlayer2* p2 = new proxyPlayer2();
    p2->play1();
    p2->play2();

    cout << "===============" << endl;

    proxyPlayer1* p1 = new proxyPlayer1();
    p1->play1();
    p1->play2();
}

 

posted @ 2021-10-21 16:19  yasai  阅读(52)  评论(0)    收藏  举报