java設計模式-外觀模式
阿新 • • 發佈:2020-12-18
外觀模式:隱藏系統的複雜性,向客戶端提供了一個客戶端可以訪問系統的介面、減少客戶端對系統的複雜性。
程式碼示例:
1.建立介面Shape
public interface Shape {
void draw();
}
2.建立實現類Rectangle、Circle、Square類
/** * 矩形 */ public class Rectangle implements Shape{ @Override public void draw() { System.out.println("畫矩形"); } }
/**
* 正方形
*/
public class Square implements Shape{
@Override
public void draw() {
System.out.println("畫正方形");
}
}
/**
* 正方形
*/
public class Square implements Shape{
@Override
public void draw() {
System.out.println("畫正方形");
}
}
2.建立ShapeMaker類,供客戶端使用
public class ShapeMaker {
public void draw() {
new Rectangle().draw();
new Circle().draw();
new Square().draw();
}
}
3.測試
public class TestShapeMaker { public static void main(String[] args) { ShapeMaker shapeMaker = new ShapeMaker(); shapeMaker.draw(); } }
根據上面的可知,客戶端需要畫一個正方形、長方形、圓形,如果客戶端自己去建立這些物件,然後呼叫,這樣對於客戶端來說就非常複雜,而通過外觀模式,我們只需要呼叫ShapeMaker的方法即可,具體的畫這些圖形的過程,我們不需要關心,大大降低了客戶端與系統之間訪問的複雜性。
優點:1、減少系統相互依賴。 2、提高靈活性。 3、提高了安全性。
缺點:不符合開閉原則,如果要改東西很麻煩,繼承重寫都不合適。