适配器模式(ADAPTER)案例分析
2008-08-02 13:25
239 查看
[案例]
朋友从美国给我带回一个微波炉,但因为美国的生活用电电压是110V,而中国的电压是220V,所以我不能使用,幸好朋友有先见之明,给我带回一个变压器,能把220V电压转换成110V电压,我才可以放心使用了。
[意图]
把一个类的借口转换成客户端所期待的另一种接口,从而使原接口不匹配而无法在一起工作的两个类能在一起工作。本程序通过适配,使c220类能在c110类中使用。
程序代码:
#include <iostream.h>
class c220v
{
public:
void DianYa220v()
{
cout<<"220v电压!"<<endl;
}
};
class c110v
{
public:
virtual void DianYa110v()=0;
};
class adaper:public c110v
{
private:
c220v *c220obj;
public:
adaper(c220v* obj)
{
c220obj=obj;
}
void DianYa110v()
{
c220obj->DianYa220v();
cout<<"经变压器转换成"<<endl;
cout<<"110v电压"<<endl;
}
};
int main()
{
c220v *c220vobj=new c220v;
adaper adobj(c220vobj);
adobj.DianYa110v();
return 1;
}
运行结果:
220v电压!
经变压器转换成
110v电压
Press any key to continue
朋友从美国给我带回一个微波炉,但因为美国的生活用电电压是110V,而中国的电压是220V,所以我不能使用,幸好朋友有先见之明,给我带回一个变压器,能把220V电压转换成110V电压,我才可以放心使用了。
[意图]
把一个类的借口转换成客户端所期待的另一种接口,从而使原接口不匹配而无法在一起工作的两个类能在一起工作。本程序通过适配,使c220类能在c110类中使用。
程序代码:
#include <iostream.h>
class c220v
{
public:
void DianYa220v()
{
cout<<"220v电压!"<<endl;
}
};
class c110v
{
public:
virtual void DianYa110v()=0;
};
class adaper:public c110v
{
private:
c220v *c220obj;
public:
adaper(c220v* obj)
{
c220obj=obj;
}
void DianYa110v()
{
c220obj->DianYa220v();
cout<<"经变压器转换成"<<endl;
cout<<"110v电压"<<endl;
}
};
int main()
{
c220v *c220vobj=new c220v;
adaper adobj(c220vobj);
adobj.DianYa110v();
return 1;
}
运行结果:
220v电压!
经变压器转换成
110v电压
Press any key to continue
相关文章推荐
- Java23种设计模式案例:适配器模式(adapter)
- Android 最常用的设计模式九 安卓源码分析—— 适配器模式(Adapter)
- 【JAVA】设计模式之适配器模式(Adapter模式)的使用分析
- 深入浅出 - Android系统移植与平台开发(十) - led HAL简单设计案例分析
- 大数据时代:基于微软案例数据库数据挖掘知识点总结(Microsoft 神经网络分析算法原理篇)
- .NET设计模式(8):适配器模式(Adapter Pattern)
- 09.适配器模式--Adapter
- 分布式计算,大型网站技术架构:核心原理与案例分析
- 从零开始学JDBC--1.11 事务机制以及案例分析
- [2017BUAA软工]第三次博客作业:案例分析
- Ubuntu14.04LTS下应用Caffe训练Cifar10错误案例分析与解决方案1
- 个人作业Week3-案例分析
- 浅谈MySQL排序原理与案例分析
- php 二分法查找数组中某数值 案例分析
- 服务器磁盘raid0,raid1,raid10,raid5,raid50,raid6,raid60 分析与案例
- Oracle 分析函数Merge 案例
- 设计模式 适配器模式 Adapter
- 源码分析FragmentPagerAdapter和FragmentStatePagerAdapter的区别
- [Oracle 11g r2(11.2.0.4.0)]案例分析1-OLR丢失导致数据库启动失败
- 空间分析及应用案例高级培训班培训照片1