前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >桥接模式

桥接模式

作者头像
用户1215536
发布2018-02-05 11:37:30
1.6K0
发布2018-02-05 11:37:30
举报

一、概述

1、桥接模式将抽象部分与它的实现部分分离,使它们都可以独立的变化。

2、在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,桥接模式把这种多维度分离出来,让他们独立变化,减少之间的耦合。

感觉桥接模式的结构有点像抽象工厂模式,但桥接模式属于结构型模式,而抽象工厂模式属于创建型模式。

3、UML

4、所属类别:结构型

二、C++程序

和抽象工厂中的例子保持一致,这里还以linux、windows系统、手机、电脑为例

代码语言:javascript
复制
 1 // 桥接模式.cpp : 定义控制台应用程序的入口点。
 2 //
 3 
 4 #include "stdafx.h"
 5 #include<iostream>
 6 using namespace std;
 7 class Ruanjian
 8 {
 9 public:
10     Ruanjian(){}
11     ~Ruanjian(){}
12      virtual void OS()=0;
13 };
14 class Linux :public Ruanjian
15 {
16 public:
17     Linux(){}
18     virtual ~Linux(){}
19     virtual void OS()
20     {
21         cout<<"我运行的是Linux系统"<<endl;
22     }
23 };
24 class Windows :public Ruanjian
25 {
26 public:
27     Windows(){}
28     virtual ~Windows(){}
29     virtual void OS()
30     {
31         cout<<"我运行的是Windows系统"<<endl;
32     }
33 };
34 class Yingjian
35 {
36 public:
37     Yingjian(){}
38     virtual ~Yingjian(){}
39     virtual void run()=0;
40 };
41 class PC:public Yingjian
42 {
43 private:
44     Ruanjian * software;
45 public:
46     PC(Ruanjian* r)
47     {
48         software=r;
49     }
50     virtual ~PC(){}
51     virtual void run()
52     {
53         cout<<"我是一个PC";
54         software->OS();
55     }
56 };
57 class Phone:public Yingjian
58 {
59 private:
60     Ruanjian * software;
61 public:
62     Phone(Ruanjian* r)
63     {
64         software=r;
65     }
66     virtual ~Phone(){}
67     virtual void run()
68     {
69         cout<<"我是一个Phone";
70         software->OS();
71     }
72 };
73 
74 int _tmain(int argc, _TCHAR* argv[])
75 {
76     Linux* l=new Linux();
77     Phone *p=new Phone(l);
78     p->run();
79     return 0;
80 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-01-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档