<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      潦草白紙

      設計模式學習心得<橋接模式 Bridge>

      說真的在此之前,幾乎沒有對于橋接模式的應用場景概念。

      橋接(Bridge)是用于把抽象化與實現化解耦,使得二者可以獨立變化。這種類型的設計模式屬于結構型模式,它通過提供抽象化和實現化之間的橋接結構,來實現二者的解耦。

      這種模式涉及到一個作為橋接的接口,使得實體類的功能獨立于接口實現類。這兩種類型的類可被結構化改變而互不影響。

      我們通過下面的實例來演示橋接模式(Bridge Pattern)的用法。其中,可以使用相同的抽象類方法但是不同的橋接實現類,來畫出不同顏色的圓。

      概述


      • 意圖
        將抽象部分與實現部分分離,使它們都可以獨立的變化。

      • 主要解決
        在有多種可能會變化的情況下,用繼承會造成類爆炸問題,擴展起來不靈活。

      • 何時使用
        實現系統可能有多個角度分類,每一種角度都可能變化。

      • 如何解決
        把這種多角度分類分離出來,讓它們獨立變化,減少它們之間耦合。

      • 關鍵代碼
        抽象類依賴實現類。

      • 應用實例

      1. 墻上的開關,可以看到的開關是抽象的,不用管里面具體怎么實現的。
      • 優點
      1. 抽象和實現的分離。
      2. 優秀的擴展能力。
      3. 實現細節對客戶透明。
      • 缺點
        橋接模式的引入會增加系統的理解與設計難度,由于聚合關聯關系建立在抽象層,要求開發者針對抽象進行設計與編程。

      • 使用場景

      1. 如果一個系統需要在構件的抽象化角色和具體化角色之間增加更多的靈活性,避免在兩個層次之間建立靜態的繼承聯系,通過橋接模式可以使它們在抽象層建立一個關聯關系。
      2. 對于那些不希望使用繼承或因為多層次繼承導致系統類的個數急劇增加的系統,橋接模式尤為適用。
      3. 一個類存在兩個獨立變化的維度,且這兩個維度都需要進行擴展。
      • 注意事項
        對于兩個獨立變化的維度,使用橋接模式再適合不過了。

      實現


      • 橋接模式主要包含如下幾個角色:
        Abstraction:抽象類。
        RefinedAbstraction:擴充抽象類。
        Implementor:實現類接口。
        ConcreteImplementor:具體實現類 。

      • step 1 形狀類:該類為一個抽象類,主要提供畫形狀的方法:Abstraction
      public abstract class Shape {
          Color color;
      
          public void setColor(Color color) {
              this.color = color;
          }
      
          public abstract void draw();
      }
      
      • step 2 三個形狀 。RefinedAbstraction

      圓形:Circle.java

      public class Circle extends Shape{
      
          public void draw() {
              color.bepaint("正方形");
          }
      }
      

      長方形:Rectangle.java

      public class Rectangle extends Shape{
      
          public void draw() {
              color.bepaint("長方形");
          }
      
      }
      

      正方形:Square.java

      public class Square extends Shape{
      
          public void draw() {
              color.bepaint("正方形");
          }
      
      }
      
      • step 3 顏色接口。Implementor
      public interface Color {
          public void bepaint(String shape);
      }
      
      • step 4 三個顏色實現類。ConcreteImplementor

      白色:White.java

      public class White implements Color{
      
          public void bepaint(String shape) {
              System.out.println("白色的" + shape);
          }
      
      }
      

      灰色:Gray.java

      public class Gray implements Color{
      
          public void bepaint(String shape) {
              System.out.println("灰色的" + shape);
          }
      }
      

      黑色:Black.java

      public class Black implements Color{
      
          public void bepaint(String shape) {
              System.out.println("黑色的" + shape);
          }
      }
      
      • step 4 客戶端。Client
      public class Client {
          public static void main(String[] args) {
              //白色
              Color white = new White();
              //正方形
              Shape square = new Square();
              //白色的正方形
              square.setColor(white);
              square.draw();
      
              //長方形
              Shape rectange = new Rectangle();
              rectange.setColor(white);
              rectange.draw();
          }
      }
      
      • step 5 運行結果
      ?白色的正方形
      白色的長方形
      

      posted on 2018-06-17 21:10  潦草白紙  閱讀(525)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 一区二区三区无码视频免费福利| 精品黄色av一区二区三区| 日韩丝袜亚洲国产欧美一区| 国产精品无码专区| 国产熟睡乱子伦午夜视频| 皋兰县| 精品精品亚洲高清a毛片| 成人午夜大片免费看爽爽爽 | 99福利一区二区视频| 97精品国产91久久久久久久| 国产亚洲欧洲av综合一区二区三区 | 国产成人精品a视频一区| 最新国产AV最新国产在钱| 国产成人一区二区三区在线| 久久精品夜夜夜夜夜久久| 人妻中文字幕一区二区三| 精品亚洲国产成人| 黄色一级片一区二区三区| 久久久国产一区二区三区四区小说 | 国产精品亚洲А∨天堂免下载| 91亚洲国产成人久久蜜臀| 亚洲欧美日韩国产手机在线| 国模肉肉视频一区二区三区 | 午夜福利影院不卡影院| 国内精品久久久久久久97牛牛| 免费看亚洲一区二区三区| 国产精品v片在线观看不卡| 国产不卡av一区二区| 国产精品护士| 国产精品久久久久AV福利动漫| 色综合人人超人人超级国碰| 成av免费大片黄在线观看| 中文字幕自拍偷拍福利视频 | 久久天天躁狠狠躁夜夜躁2o2o| 人人干人人噪人人摸| 国产精品乱人伦一区二区| 国产线播放免费人成视频播放| 久久婷婷五月综合色国产免费观看 | 久久精品夜色噜噜亚洲av| 加勒比无码人妻东京热| 日韩卡1卡2卡三卡免费网站|