博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式-桥接模式
阅读量:6429 次
发布时间:2019-06-23

本文共 1816 字,大约阅读时间需要 6 分钟。

前言

点击查看: 

桥接模式(Bridge)

定义:将抽象部分与实现部分分离,使它们都可以独立的变化。

理解:为啦解决一个对象变化而影响多个对象跟着变化,需要把具体实现对象抽象化,使降低对象和变化因素的耦合度,提高系统的可维护性和扩展性。

举例:

手机系统的生态圈问题:

啰嗦点:众所周知wp的生态圈相对与有些系统较差,各位需努力,诺基亚走下神坛,wp要走上神坛,顶一下哈。

wp/ios系统类:运行软件,可承载本运行环境下的任何软件,如果新增一个系统,软件就要多做一个系统的版本

weixin/kuwo软件类:开始运行软件,如果新加一块软件,就要做众多系统版本的。

实现:在iso和wp系统中运行,各种不同的软件。

类图:

 

软件代码:

//软件    public interface ISoftWare    {        void start();    }    //Kuwo    public class Kuwo : ISoftWare    {        public void start()        {            Console.WriteLine("听音乐,用酷我!");        }    }    //WeiXin    public class WeiXin : ISoftWare    {        public void start()        {            Console.WriteLine("让你我的距离更近!");        }    }

操作系统代码

//操作系统,跑软件    public abstract class System    {        public abstract void Run(ISoftWare software);    }    //Wp    public class WinPhone : System    {        public override void Run(ISoftWare software)        {            Console.WriteLine("Winphone系统,给你想要的;");            software.start();        }    }    //Ios    public class Ios : System    {        public override void Run(ISoftWare software)        {            Console.WriteLine("Ios系统,给你想不到的;");            software.start();        }    }

客户端代码

public static void Main()        {            ISoftWare weixin = new WeiXin();            ISoftWare kuwo = new Kuwo();            //Wp系统            System WpSys = new WinPhone();            WpSys.Run(weixin);            WpSys.Run(kuwo);            //IOS系统            System IosSys = new Ios();            IosSys.Run(weixin);            IosSys.Run(kuwo);            Console.Read();        }

桥接模式总结

一、桥接模式的参与者包括:

抽象类:定义类的接口

具体类:继承抽象类,并实现扩展他

实现着:接口

具体实现着:接口的实现类

二、桥接模式的作用

系统,软件犹如两个层次,可避免两个层次间建立高耦合的链接,同时也实现啦抽象和实现分离,使系统和软件变化不会受到对方的影响,也更容易向客户端程序隐藏实现的细节。

模式是所有模式中,最复杂的一种之一,要好好体会,好好理解,好好想想在具体项目中如何运用。

欢迎加入博客左上方群,交流探讨,设计模式,数据库,c#.net,数据结构。

转载地址:http://qwnga.baihongyu.com/

你可能感兴趣的文章
定期重置数据库序列
查看>>
linux sed
查看>>
矩阵快速幂
查看>>
3D引擎比较和C++的UI
查看>>
[MVCSharp]MVC# Overview概述
查看>>
React Native小白入门学习路径——二
查看>>
封装和内置函数property classmethod staticmethod
查看>>
9.22
查看>>
codeforces 599D Spongebob and Squares
查看>>
手机安全卫士——手机防盗页面
查看>>
java基础 逻辑
查看>>
找出数组中出现次数超过一半的数
查看>>
第十一次发博不知道用什么标题好
查看>>
收藏网址目录
查看>>
vue局部组件
查看>>
js行内式遇到的一些问题 DOM对象和jq对象转换的问题
查看>>
hoj1991 Happy 2005
查看>>
Django extra 和 annotate
查看>>
【转】ORACLE 表空间扩展方法
查看>>
[转载] 全本张广泰——第十五回 父子遇高人 原是同门亲
查看>>