文档章节

Adapt模式

Ne0o0
 Ne0o0
发布于 2017/04/25 13:50
字数 204
阅读 3
收藏 0
//Adapt模式 

//组合模式
//需要被Adapt的类
class ITarget
{
public:
	ITarget(){}
	virtual~ITarget(){}
public:
	virtual void Request()=0;
};
// 与被Adapt对象提供不兼容接口的类
class Adaptee
{
public:
	Adaptee(){}
	~Adaptee(){}
public:
	void SpecialRequest(){printf("this is a call SpecialRequest\n");};
};

class Adapter: public ITarget
{
public:
	Adapter(Adaptee* pAdaptee){}
    ~Adapter(){}

	virtual void Request()
	{
		m_pAdptee->SpecialRequest();
	}

private:
	Adaptee* m_pAdptee;
};

int _tmain(int argc, _TCHAR* argv[])
{
	//Adapt模式
	Adaptee *pAdaptee=new Adaptee;
	ITarget *padapter=new Adapter(pAdaptee);
	padapter->Request();
	delete pAdaptee;
	delete padapter;
	//Adapt模式
	getchar();
	return 0;
}

//继承模式

//需要被Adapt的类
class ITarget
{
public:
	ITarget(){}
	virtual~ITarget(){}
public:
	virtual void Request()=0;
};
// 与被Adapt对象提供不兼容接口的类
class Adaptee
{
public:
	Adaptee(){}
	virtual~Adaptee(){}
public:
	void SpecialRequest(){printf("this is a call SpecialRequest\n");};
};

class Adapter0: public ITarget,Adaptee
{
public:
	Adapter0(){}
	~Adapter0(){}

	virtual void Request()
	{
		Adaptee::SpecialRequest();
	}
};

//继承模式

int _tmain(int argc, _TCHAR* argv[])
{
	//Adapt模式
	ITarget *padapter=new Adapter0;
	padapter->Request();
	delete padapter;
	//Adapt模式
	getchar();
	return 0;
}

//Adapt模式

© 著作权归作者所有

上一篇: Bridge模式
下一篇: windows hook dll
Ne0o0
粉丝 2
博文 70
码字总数 29011
作品 0
程序员
私信 提问
Retrofit2.0- 源码分析

1. 阅读引导 在分析 Retrofit 源码之前,你首先得理解动态代理模式,因为Retrofit是通过动态代理的方式进行统一网络请求接口类的处理。Retrofit的代码量并不大,只是对OkHttp进行了封装,用更...

负了时光不负卿
2017/12/13
0
0
VirtualBox虚拟机网络设置(四种方式)

对于做备份和还原分区的操作来说,没那么多money买实际的机器,所以虚拟机成了个不错的选择。 有时需要到远程调试,所以要设置虚拟机的网络方式。下面转载网上看到的。 VirtualBox虚拟机网络...

长平狐
2013/01/11
242
0
通过委派模式包装一个RxJavaCallAdapterFactory

通过委派模式包装一个RxJavaCallAdapterFactory 标签(空格分隔): RxJava Retrofit CallAdapter 实现是厌倦了写很多重复的代码了。 最近项目使用RxJava(RxAndroid)和Retrofit搭配做网络请...

林泳坛
2016/01/19
1K
0
Scala 2.12.4 发布,编译时间再减少 5-10%

Scala 2.12.4 已发布,与上个版本比较,基准测试显示编译时间再减少5-10%。此外,还包含对 Java 9 支持的改进以及一些功能改进。 Scala 是一门现代的多范式编程语言,志在以简练、优雅及类型...

王练
2017/10/21
1K
8
按照事例进行测试不通过

TypeError: Cannot read property 'paginationConfig' of undefined at adapt-strap.min.js:8 at r. (adapt-strap.min.js:8) at d (adapt-strap.min.js:8) at angular.js:17918 at e (angula......

bryanlin
2016/01/19
36
0

没有更多内容

加载失败,请刷新页面

加载更多

Jenkins系列_插件安装及报错处理

进入Jenkins之后我们可以进行插件的安装,插件管理位于以下模块: 发现上面报了一堆错误,是因为插件的依赖没有安装好,那么这一节,就先把这些错误解决掉吧。解决完成后,也就基本会使用插件...

shzwork
今天
2
0
mysql mysql的所有查询语句和聚合函数(整理一下,忘记了可以随时看看)

查询所有字段 select * from 表名; 查询自定字段 select 字段名 from 表名; 查询指定数据 select * from 表名 where 条件; 带关键字IN的查询 select * from 表名 where 条件 [not] in(元素...

edison_kwok
昨天
9
0
多线程同时加载缓存实现

import com.google.common.cache.Cache;import com.google.common.cache.CacheBuilder;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorServi......

暗中观察
昨天
3
0
利用VisualVM 内存查看

准备工作,建几个测试类。等下就是要查看这几个类里面的属性 package visualvm;public class MultiObject { private String str; private int i; MultiObject(String str...

冷基
昨天
2
0
组装一台工作游戏两用机

一、配置清单如下: 分类 项目 价格(元) 主板 华硕(ASUS)TUF Z370-PLUS GAMING II 电竞特工 Z370二代 支持9代CPU 1049 CPU 英特尔(Intel) i7 8700K 酷睿六核 盒装CPU处理器 2640 风扇 九...

mbzhong
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部