Anywhere

水中苇
随笔 - 28, 文章 - 3, 评论 - 0, 引用 - 0
数据加载中……

Adapter模式

A:adapter模式中的类模式:
问题:类A中的方法要用到类B提供的接口.
实现方法:
新生成一个类C,公共继承于类A,私有继承于类B:
这样.类C,拥有了类A中的公有方法,也拥有了类B中提供的公有接口.
然后,C重载类A的方法,调用B提供的接口 .

这里有一个关于接口继承和实现继承的问题:
接口继承:就是继承父类的接口还可以向外部提供接口.
实现继承:就是继承父类的接口以后就不可以向外部提供了..

代码:
class A
{
public:
A();
virtual ~A();
vitual 
void operation();  //供C重载
}
;
class B
{
 
public:
 B();
 
virtual ~B();
 
void operationB();
}
;
class C:public A,private B
{
public:
 C();
 
~C():
 
void operation()
{
  
this->operationB();
}

}
B:Adapter 的对象模式
这种模式则和bridge模式中有些类似,采用类组合的方式.对于类A,和类B;
新创建一个类C,公共继承于类A,然后在类C中创建一个类B的对象指针.这样就可以通过这个指针来调用类B提供的接口 .
class C:public A
{
 
public:
  C();
  
~C();
  
void operation
  
{
    pB
->operationB();
  }

 
private:
  B 
*pB;
}
;


posted on 2009-08-10 10:10 三水寿 阅读(408) 评论(0)  编辑 收藏 引用 所属分类: 设计模式学习笔记----结构模式


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理