积木

No sub title

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  140 Posts :: 1 Stories :: 11 Comments :: 0 Trackbacks

常用链接

留言簿(1)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 该模式也相对简单。其主要处理的是这类问题:当系统或某些模块已经成形后,突然需要增加某些功能。而这些功能的增加
在现有的对象中,暂时没有办法处理。同时,却发现,该功能,其实另一模块的对象却可以处理的了。因此,就希望能够在不修改原
有操作及系统结构的情况下,就自然而然地将该功能实现出来。此时,就可以使用Adapter来处理之。(注:在此,我们强调的是不
去修改原有系统的结构的情况下)。
 就上述问题,Adapter模式有两种解决方法。一种是通过对象适配来解决。另一种是通过类适配来解决。所谓的对象适配,指
的是,通过引入具有我们需要功能接口的对象(设类为X),在实现处理过程中,我们使用的是X的功能接口,以此来达到我们的需求。
而类适配,则指的是,产生一个新类,让该新类,继承自X类,则自然,该新类就会有了X的相关接口。下面看下,这两种适配的代码。

对象适配
class X
{
public:
 ...
 virtual func(...);
};

class ObjAdapterObject : public ...
{
public:
 void func(...)
 {
  if (m_pXObj != NULL)
   m_pXObj->func(...);
 }
private:
 X* m_pXObj;
};

类适配
class X的声明及定义同上。

class ClassAdapterObject: public X, public  ...
{
public:
 ...
};

以下调用就不写了,你懂得的。

posted on 2011-05-21 23:54 Jacc.Kim 阅读(332) 评论(0)  编辑 收藏 引用 所属分类: 设计模式

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