posts - 101,  comments - 57,  trackbacks - 0
        Bridge模式看过很多遍,说实话没看懂过。今天终于觉悟....

        Bridge模式的定义是:将抽象和实现解耦。

        这个定义是最让人费解的,抽象和实现解耦和Bridge有什么关系,特别是UML的图形给出来的时候更让我感觉到这个定义的匪夷所思。

        下面来举个例子吧:

        我很久前遇到的问题就是:写一个系统,当输入可能内存、文件.....而输出可能是内存、文件等等的时候。如果按照C接口的定义方式,你可能要做一下的定义。
         MemToMem()
         MemToFile()
         FileToMem()
         FileToFile()
         
         一下就要定义2x2的接口,而如果在增加一个输入,那么就是2x3的接口,再增加同样的输出就是3x3的接口。

        如果在C++里面,就是有双重的集成关系,首先是基类,然后是n中输入类,再来就是n^2个输出类。

        所以Bridge模式要解决的就是这种变化关系。

        Bridge模式的思想就是将n个输入类和n个输出类解耦(抽象和实现接口)让他们分别依赖自己的基类,而最终通过组合的方式让两者分离。

        简单的代码
   
 
class Input
{
public:
    
virtual void Do() = 0;
    
private:
    OutPut pObj;
}


class InMem : public Input
{
public:
    
virtual void Do()
    
{
       pObj
->Out();
    }

}



class OutPut
{
    
virtual void Out() = 0;
}



class outMem
{
    
virtual void Out()
    
{
         
// do something
    }

}

ps.此文档之作为技术的随笔,供以后搜索,如果疑问概不回答。
posted on 2010-07-31 18:26 margin 阅读(777) 评论(0)  编辑 收藏 引用

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


<2010年5月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

常用链接

留言簿

随笔档案

文章分类

文章档案

收藏夹

常去的坛子

  • CVC电脑病毒论坛
  • 很多人说我是AV,我告诉他们:别瞧不起人,我们也能创造价值
  • 安全焦点
  • 黑客聚集的地方,一般是好酒最多的地方...
  • 看雪论坛
  • 国内最强的加密解密论坛,成醉其中经常夜不归宿
  • 驱动开发论坛
  • 厌倦了啤的朋友们,来我们来整点白的...痛痛快快的BSOD也好过隔鞋瘙痒!

我的朋友

  • Sen的blog
  • IDE方面资深的受害者...经常为一个变量的定义找不着北的痛苦程序员(深表同情)
  • 老罗的blog
  • 良师益友,千年水牛,引擎猛男,分析怪兽,墨镜酷哥,台球高手....

搜索

  •  

最新评论