c++设计模式--对象适配器模式

// AdapterPattern.cpp : 定义控制台应用程序的入口点。
//通过此例程了解设计模式里的“对象适配器模式”

//适配器模式:将一个类的接口转换为用户希望的另一个类的接口,适配器模式使得
//原本由于接口不兼容而不能再一起工作的类可以再一起工作--《大话设计模式》

//手机的电压一般在3-4.2v,
//而电视机的电压在220v--300v
//两者显示的电压不同,我们要利用适配器去覆盖手机的电压显示接口去显示电视机的电压行为




#include "stdafx.h"
#include <process.h>
#include <iostream>
using namespace std;

class CPhoneVoltage
{
public:
 CPhoneVoltage()
 {
 }
 virtual ~CPhoneVoltage()
 {
 }
 virtual void ShowPhoneVoltage()const=0;
};
 

class CTvVoltage
{
public:
 void ShowTvVoltage()
 {
  cout<<"220 V"<<endl;
 }
};
//电视机电压适配器继承于手机类,同时在内部关联机一个电视电压对象,这样可以覆盖掉手机的接口,以实现显示电视机电压的行为
class CTvAdapter:public CPhoneVoltage
{
public:
 CTvAdapter(CTvVoltage *pTvVo)
 {
  this->m_pTvVo=pTvVo;
 }
 void ShowPhoneVoltage() const
 {
  m_pTvVo->ShowTvVoltage();
 }
private:
 CTvVoltage *m_pTvVo;
};
 
 

int _tmain(int argc, _TCHAR* argv[])
{
 cout<<"-------适配器模式测试案例---------------"<<endl<<endl;
 CTvVoltage *pTvVo=new CTvVoltage();
 CTvAdapter *pAdap=new CTvAdapter(pTvVo);
 pAdap->ShowPhoneVoltage();
 delete pAdap;
 delete pTvVo;
 pTvVo=NULL;
 pAdap=NULL;
 system("pause");
 return 0;
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值