C++设计模式之-代理模式
2024-09-17 09:48:35
根据程洁的大话模式:
// Proxy.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include<iostream>
#include <string>
using namespace std; class Girl
{
public:
Girl(string name = ""):mName(name){}
string getName()
{
return mName;
}
private:
string mName;
}; class GiveGift
{
public:
virtual void GiveDolls() = ;
virtual void GiveFlowers() = ;
virtual void GiveChocolate() = ;
}; class Puisuit:public GiveGift
{
public:
Puisuit(Girl mm):mGirl(mm){}
virtual void GiveDolls()
{
cout<<"送"<<mGirl.getName()<<"玩具"<<endl;
}
virtual void GiveFlowers()
{
cout<<"送"<<mGirl.getName()<<"鲜花"<<endl;
}
virtual void GiveChocolate()
{
cout<<"送"<<mGirl.getName()<<"巧克力"<<endl;
}
private:
Girl mGirl;
}; class Proxy:public GiveGift
{
public:
Proxy(Girl mm)
{
mPuisuit = new Puisuit(mm);
}
virtual void GiveDolls()
{
mPuisuit->GiveDolls();
}
virtual void GiveFlowers()
{
mPuisuit->GiveFlowers();
}
virtual void GiveChocolate()
{
mPuisuit->GiveChocolate();
}
private:
Puisuit* mPuisuit;
};
int _tmain(int argc, _TCHAR* argv[])
{
cout<<"代理模式"<<endl;
Girl girl("娇娇");
Proxy pro(girl);
pro.GiveDolls();
pro.GiveFlowers();
pro.GiveChocolate();
system("pause");
return ;
}
最新文章
- 如何在CentOS 5/6上安装EPEL源
- nhibernat4.0.0.4000 bug
- C#全角、半角转换
- BZOJ-3130 费用流 (听题目胡扯丶裸最大流) 二分判定+最大流+实数精度乱搞
- C语言中的const
- Android下利用SQLite数据库实现增删改查
- jQuery基础与实例
- 【Xamarin挖墙脚系列:最重要的布局ListView】
- react-native 环境配置及hello world
- delphi 对抗任务管理器关闭(提升进程到Debug模式,然后设置进程信息SE_PROC_INFO)
- linux yum安装mongodb
- Spark结构式流编程指南
- BestCoder Round #34_1002 以及 hdu 5191
- 校门外的树-poj
- python 算法学习部分代码记录篇章1
- js保留两位小数数字
- Android GUI之View绘制流程
- Oracle多行记录合并/连接/聚合字符串的几种方法
- HttpClient上传下载文件
- easyui+nodejs+sqlserver增删改查实现