外觀模式的目的是為類的調(diào)用提供一個統(tǒng)一的接口,用戶只需要通過這個接口就可以實現(xiàn)內(nèi)部復(fù)雜類的方法,無須詳細(xì)了解內(nèi)部復(fù)雜類的具體實現(xiàn)方式,降低系統(tǒng)調(diào)用的復(fù)雜度。
下例仍以畫圖形為例說明外觀模式的用法。Shape接口類有兩個實現(xiàn)類Circle和Rectangle,其內(nèi)部具體的畫圓和畫矩形可能較為復(fù)雜,為此,設(shè)計了一個外觀類ShapeMaker,通過ShapeMaker類的調(diào)用就可以實現(xiàn)畫圓和畫矩形的功能,用戶完全不需要了解Circle和Rectangle類的內(nèi)容代碼。
外觀模式常用于應(yīng)用程序的對外接口設(shè)計,通過設(shè)計一個外觀類,不了解應(yīng)程序內(nèi)部代碼的人也可以輕松應(yīng)用程序的相關(guān)功能,有利于程序的模塊化設(shè)計。
Shape接口類:
package facade;
public interface Shape {
public void draw();
}
Circle實現(xiàn)類:
package facade;
public class Circle implements Shape{
@Override
public void draw() {
System.out.println("畫圓形");
}
}
Rectangle實現(xiàn)類:
package facade;
public class Rectangle implements Shape{
@Override
public void draw() {
System.out.println("畫矩形");
}
}
ShapeMaker外觀類:
package facade;
public class ShapeMaker {
private Shape circle;
private Shape rectangle;
public ShapeMaker() {
circle=new Circle();
rectangle=new Rectangle();
}
public void circleDraw() {
circle.draw();
}
public void rectangleDraw() {
rectangle.draw();
}
}
主函數(shù)調(diào)用方式:
package main;
import facade.*;
public class FacadePattern {
public static void main(String[] args) {
ShapeMaker shapeMaker=new ShapeMaker();
shapeMaker.circleDraw();
shapeMaker.rectangleDraw();
}
}
-
printf函數(shù)
+關(guān)注
關(guān)注
0文章
31瀏覽量
5921
發(fā)布評論請先 登錄
相關(guān)推薦
基于FPGA的I2C SLAVE模式總線的設(shè)計方案
百靈鳥電路的設(shè)計方案
【資料分享】STM32設(shè)計方案與示例分享 第一波
車載顯示技術(shù)及其應(yīng)用方案~
STM32設(shè)計方案與示例分享
變頻器有哪些設(shè)計方案?
一種實用的單片機(jī)雙CPU設(shè)計方案及其應(yīng)用
耳溫槍設(shè)計方案設(shè)計
并網(wǎng)逆變器的設(shè)計方案
芯片設(shè)計公司ARM推出了新的授權(quán)模式,嘗試不同的芯片設(shè)計方案

評論