zoukankan      html  css  js  c++  java
  • 设计模式-桥接模式

    前言

    点击查看:设计模式系列 

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

  • 相关阅读:
    Oracle查看和删除database link
    时间类型数据使用between ...and ..语句条件查询时应注意的问题
    ORA-01031:权限不足的问题
    ORA-01031:权限不足
    oracle常用命令之tnsping
    oracle数据库tns配置方法详解
    Oracle跨库操作实现
    数据库中Schema(模式)概念的理解
    数据库中的Schema是什么?
    调用全局api(接口)
  • 原文地址:https://www.cnblogs.com/knowledgesea/p/3937888.html
Copyright © 2011-2022 走看看