前言
點擊查看:設計模式系列
橋接模式(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(); }
橋接模式總結
一、橋接模式的參與者包括:
抽象類:定義類的接口
具體類:繼承抽象類,並實現擴展他
實現着:接口
具體實現着:接口的實現類
二、橋接模式的作用
系統,軟件猶如兩個層次,可避免兩個層次間建立高耦合的鏈接,同時也實現啦抽象和實現分離,使系統和軟件變化不會受到對方的影響,也更容易向客戶端程序隱藏實現的細節。
此模式是所有模式中,最復雜的一種之一,要好好體會,好好理解,好好想想在具體項目中如何運用。
