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

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

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

      外觀模式

      外觀模式(Facade Pattern)隱藏系統的復雜性,并向客戶端提供了一個客戶端可以訪問系統的接口。這種類型的設計模式屬于結構型模式,它向現有的系統添加一個接口,來隱藏系統的復雜性。

      這種模式涉及到一個單一的類,該類提供了客戶端請求的簡化方法和對現有系統類方法的委托調用。

      介紹
      意圖

      為一個復雜的子系統提供一個一致的高層接口。這樣,客戶端代碼就可以通過這個簡化的接口與子系統交互,而不需要了解子系統內部的復雜性。

      主要解決的問題
      • 降低客戶端與復雜子系統之間的耦合度。
      • 簡化客戶端對復雜系統的操作,隱藏內部實現細節。
      使用場景
      • 當客戶端不需要了解系統內部的復雜邏輯和組件交互時。
      • 當需要為整個系統定義一個清晰的入口點時。
      實現方式
      • 創建外觀類:定義一個類(外觀),作為客戶端與子系統之間的中介。
      • 封裝子系統操作:外觀類將復雜的子系統操作封裝成簡單的方法。
      關鍵代碼
      • Facade類:提供高層接口,簡化客戶端與子系統的交互。
      • 子系統類:實現具體的業務邏輯,被Facade類調用。
      應用實例
      1. 醫院接待:醫院的接待人員簡化了掛號、門診、劃價、取藥等復雜流程。
      2. Java三層架構:通過外觀模式,可以簡化對表示層、業務邏輯層和數據訪問層的訪問。
      優點
      1. 減少依賴:客戶端與子系統之間的依賴減少。
      2. 提高靈活性:子系統的內部變化不會影響客戶端。
      3. 增強安全性:隱藏了子系統的內部實現,只暴露必要的操作。
      缺點
      • 違反開閉原則:對子系統的修改可能需要對外觀類進行相應的修改。
      使用建議
      • 在需要簡化復雜系統訪問時使用外觀模式。
      • 確保外觀類提供的方法足夠簡單,以便于客戶端使用。
      注意事項
      • 外觀模式適用于層次化結構,可以為每一層提供一個清晰的入口。
      • 避免過度使用外觀模式,以免隱藏過多的細節,導致維護困難。
      結構

      外觀模式涉及以下核心角色:

      • 外觀(Facade):
        • 提供一個簡化的接口,封裝了系統的復雜性。外觀模式的客戶端通過與外觀對象交互,而無需直接與系統的各個組件打交道。
      • 子系統(Subsystem):
        • 由多個相互關聯的類組成,負責系統的具體功能。外觀對象通過調用這些子系統來完成客戶端的請求。
      • 客戶端(Client):
        • 使用外觀對象來與系統交互,而不需要了解系統內部的具體實現。

       https://huoyundi.com/

      實現

      我們將創建一個 Shape 接口和實現了 Shape 接口的實體類。下一步是定義一個外觀類 ShapeMaker

      ShapeMaker 類使用實體類來代表用戶對這些類的調用。FacadePatternDemo 類使用 ShapeMaker 類來顯示結步驟 1

      創建一個接口。

      Shape.java

      public interface Shape {

      void draw();

      }

      步驟 2

      創建實現接口的實體類。

      Rectangle.java

      public class Rectangle implements Shape {

       

      @Override

      public void draw() {

      System.out.println("Rectangle::draw()");

      }

      }

      Square.java

      public class Square implements Shape {

       

      @Override

      public void draw() {

      System.out.println("Square::draw()");

      }

      }

      Circle.java

      public class Circle implements Shape {

       

      @Override

      public void draw() {

      System.out.println("Circle::draw()");

      }

      }

      步驟 3

      創建一個外觀類。

      ShapeMaker.java

      public class ShapeMaker {

      private Shape circle;

      private Shape rectangle;

      private Shape square;

       

      public ShapeMaker() {

      circle = new Circle();

      rectangle = new Rectangle();

      square = new Square();

      }

       

      public void drawCircle(){

      circle.draw();

      }

      public void drawRectangle(){

      rectangle.draw();

      }

      public void drawSquare(){

      square.draw();

      }

      }

      步驟 4

      使用該外觀類畫出各種類型的形狀。

      FacadePatternDemo.java

      public class FacadePatternDemo {

      public static void main(String[] args) {

      ShapeMaker shapeMaker = new ShapeMaker();

       

      shapeMaker.drawCircle();

      shapeMaker.drawRectangle();

      shapeMaker.drawSquare();

      }

      }

      步驟 5

      執行程序,輸出結果:https://huoyundi.com/

      Circle::draw()
      Rectangle::draw()
      Square::draw()
      posted @ 2024-08-16 09:04  dengyantao  閱讀(105)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久久日韩在线观看视频| 激情综合网激情综合网激情| 四虎成人精品永久网站| 99久久伊人精品综合观看| 国产嫩草精品网亚洲av| 亚洲综合av一区二区三区| 亚洲男人成人性天堂网站| 最近中文字幕日韩有码| 亚洲一级片一区二区三区| 国产精品大全中文字幕| 国产亚洲无线码一区二区| 日本高清在线播放一区二区三区| 国产黄色带三级在线观看| 中文字幕人妻色偷偷久久| 亚洲国产精品成人无码区| 色综合久久久久综合体桃花网| 日本一道一区二区视频| 老司机午夜免费精品视频| 久国产精品韩国三级视频| 亚洲av激情久久精品人| 国产精品入口麻豆| 亚洲av永久无码精品天堂久久| 亚洲第一香蕉视频啪啪爽| 国产精品免费中文字幕| 啪啪av一区二区三区| 高清国产亚洲精品自在久久| 婷婷丁香五月亚洲中文字幕| 国内精品久久人妻无码妲| 国产一区二区三区精品综合| 国产av普通话对白国语| 高中女无套中出17p| 亚洲天堂网色图伦理经典| 中日韩精品视频一区二区三区| 亚洲国产日韩一区三区| 性欧美三级在线观看| 国产精品白嫩初高生免费视频| 亚洲国产欧美一区二区好看电影| 日韩精品国产另类专区| 不卡高清AV手机在线观看| 精品乱码一区二区三四五区| 中国亚州女人69内射少妇|