首页 > 代码库 > 设计模式-桥接模式

设计模式-桥接模式

前言

点击查看:设计模式系列 

桥接模式(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,数据结构。

设计模式-桥接模式