Design Patterns - Facade Pattern(譯)

原文連接
譯者:smallclover
但願對你們有所幫助!Thanks for your watchingjava

門面模式

門面模式隱藏系統的複雜性同時會提供一個接口給用戶,使得用戶能夠使用該系統。這種類型的設計模式屬於結構型模式的一種,它將會添加一個接口到現有的系統當中,用戶經過該接口使用系統,從而隱藏了系統的複雜性。
該模式涉及一個單獨的類,該類會向客戶提供簡單的方法而且代替用戶去調用那些在系統中存在的類的方法。這樣用戶就不會接觸到系統是如何實現的,從而隱藏了系統的複雜性。設計模式

實現ide

咱們將建立一個Shape接口,而且建立具體的類實現它。接下來咱們須要聲明一個門面類ShapeMaker。
ShapeMaker類代替用戶去調用這些具體的類。FacadePatternDemo,咱們的demo類將經過使用ShapeMaker類來展現這些結果。spa

clipboard.png

第一步

建立一個接口。
Shape.java設計

public interface Shape {
   void draw();
}

第二步

建立具體的類實現Shape接口。
Rectangle.javacode

public class Rectangle implements Shape {

   @Override
   public void draw() {
      System.out.println("Rectangle::draw()");
   }
}

Square.javahtm

public class Square implements Shape {

   @Override
   public void draw() {
      System.out.println("Square::draw()");
   }
}

Circle.javablog

public class Circle implements Shape {

   @Override
   public void draw() {
      System.out.println("Circle::draw()");
   }
}

第三步

建立一個門面類。接口

ShapeMaker.javaip

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();
   }
}

第四步

使用門面類畫各類各樣的圖形。

FacadePatternDemo.java

public class FacadePatternDemo {
   public static void main(String[] args) {
      ShapeMaker shapeMaker = new ShapeMaker();

      shapeMaker.drawCircle();
      shapeMaker.drawRectangle();
      shapeMaker.drawSquare();        
   }
}

第五步

校驗輸出

Circle::draw()
Rectangle::draw()
Square::draw()
相關文章
相關標籤/搜索