JavaFacadePattern(外觀模式)
外觀模式(Facade Pattern)隱藏系統的複雜性,並向客戶端提供了一個客戶端可以訪問系統的介面。這種型別的設計模式屬於結構型模式,它向現有的系統新增一個介面,來隱藏系統的複雜性。
這種模式涉及到一個單一的類,該類提供了客戶端請求的簡化方法和對現有系統類方法的委託呼叫。
關鍵程式碼:在客戶端和複雜系統之間再加一層,這一層將呼叫順序、依賴關係等處理好。
優點: 1、減少系統相互依賴。 2、提高靈活性。 3、提高了安全性。
缺點:不符合開閉原則,如果要改東西很麻煩,繼承重寫都不合適。
- 建立一個介面。
/**
* 1. 建立一個介面
* @author mazaiting
*/
public interface Shape {
/**
* 繪圖
*/
void draw();
}
- 建立實現介面的實體類。
/**
* 2. 建立實現介面的實體類。
* @author mazaiting
*/
public class Circle implements Shape{
public void draw() {
System.out.println("Circle::draw()");
}
}
/**
* 2. 建立實現介面的實體類。
* @author mazaiting
*/
public class Rectangle implements Shape{
public void draw() {
System.out.println("Rectangle::draw()");
}
}
/**
* 2. 建立實現介面的實體類。
* @author mazaiting
*/
public class Square implements Shape{
public void draw() {
System.out.println("Square::draw()");
}
}
- 建立一個外觀類。
/**
* 3. 建立一個外觀類
* @author mazaiting
*/
public class ShapeMarker {
private Shape circle;
private Shape rectangle;
private Shape square;
public ShapeMarker(){
circle = new Circle();
rectangle = new Rectangle();
square = new Square();
}
public void drawCircle() {
circle.draw();
}
public void drawRectangle() {
rectangle.draw();
}
public void drawSquare() {
square.draw();
}
}
- 使用該外觀類畫出各種型別的形狀。
public class Client {
public static void main(String[] args) {
ShapeMarker shapeMarker = new ShapeMarker();
shapeMarker.drawCircle();
shapeMarker.drawRectangle();
shapeMarker.drawSquare();
}
}
- 列印結果
Circle::draw()
Rectangle::draw()
Square::draw()
相關文章
- 外觀模式模式
- 外觀模式及其改進(一):外觀模式概述模式
- JS 外觀模式JS模式
- 設計模式-外觀模式設計模式
- 【設計模式】外觀設計模式
- 結構型模式:外觀模式模式
- 設計模式(十)外觀模式設計模式
- java設計模式-外觀模式Java設計模式
- 設計模式系列-外觀模式設計模式
- 設計模式(十):外觀模式設計模式
- Python設計模式-外觀模式Python設計模式
- 極簡設計模式-外觀模式設計模式
- 設計模式---外觀設計模式設計模式
- JS 設計模式 十一(外觀模式)JS設計模式
- Java設計模式11:外觀模式Java設計模式
- 外觀模式(Facade)模式
- python-外觀模式Python模式
- 結構性外觀模式.模式
- 外觀模式及其改進(二):抽象外觀類的引入模式抽象
- 設計模式之【門面模式(外觀模式)】設計模式
- 《Head First 設計模式》:外觀模式設計模式
- 設計模式第六講-外觀模式設計模式
- 【23種設計模式】外觀模式(十)設計模式
- 23種設計模式(8)-外觀模式設計模式
- 通俗 Python 設計模式——外觀模式Python設計模式
- 設計模式 | 外觀模式及典型應用設計模式
- 設計模式——9外觀模式(Facade)設計模式
- Go 實現常用設計模式(八)外觀模式Go設計模式
- JS設計模式之Facade(外觀)模式JS設計模式
- 結構模式 01-外觀模式(facade)模式
- 軟體設計模式系列之十二——外觀模式設計模式
- 《設計模式》 - 8. 外觀模式( Facade )設計模式
- java23種設計模式-門面模式(外觀模式)Java設計模式
- Objective-C設計模式解析-外觀Object設計模式
- 設計模式【9】-- 外觀模式?沒那麼高大上設計模式
- C#設計模式-外觀模式(Facade Pattern)C#設計模式
- 設計模式學習-使用go實現外觀模式設計模式Go
- 設計模式--外觀模式Facade(結構型)設計模式