设为首页 加入收藏

TOP

设计模式-桥接模式
2019-09-03 03:33:42 】 浏览:19
Tags:设计模式 桥接 模式

前言

点击查看:设计模式系列 

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


设计模式-桥接模式 https://www.cppentry.com/bencandy.php?fid=97&id=249230

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java 单例模式 下一篇《大话设计模式》的一些总结