• 设计模式-桥接模式


    前言

    点击查看:设计模式系列 

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

  • 相关阅读:
    GzipOutputStream及GzipInputStream的用法
    java的ZipOutputStream压缩文件的两个问题(乱码和每次zip后文件md5变化)
    HttpClient对URL编码的处理方式解惑!
    使用tmpfs缓存文件提高性能
    eclipse attach source code support folder zip & jar format
    HTTP头部详解及使用Java套接字处理HTTP请求
    curl使用总结
    cURL: win64sslsspi from Mirrors 64bit win7 version
    httpclient解析gzip网页
    使用Gzip加速网页的传输
  • 原文地址:https://www.cnblogs.com/knowledgesea/p/3937888.html
Copyright © 2020-2023  润新知