漫畫:用木蘭從軍說外觀模式

唧唧復唧唧,木蘭當戶織。不聞機杼聲,惟聞女嘆息。

在這裏插入圖片描述
在這裏插入圖片描述

外觀模式的基本uml:
在這裏插入圖片描述

木蘭做戰衣的uml圖:

在這裏插入圖片描述

public class FineHorse {

    public void eastMarketGet() {
        System.out.println("東市買駿馬~");
    }
}

public class Saddle {

    public void westernMarketGet() {
        System.out.println("西市買鞍韉~");
    }
}

public class BridleHead {

    public void southMarketGet() {
        System.out.println("南市買轡頭~");
    }
}

public class Whip {

    public void northMarketGet() {
        System.out.println("北市買長鞭~");
    }

}

public class WeaponMaster {

    private BridleHead bridleHead = new BridleHead();
    private FineHorse fineHorse = new FineHorse();
    private Saddle saddle = new Saddle();
    private Whip whip = new Whip();

    public void makeWararmor() {

        fineHorse.eastMarketGet();
        saddle.westernMarketGet();
        bridleHead.southMarketGet();
        whip.northMarketGet();

        System.out.println("裝備獲取成功~");
        System.out.println("恭喜,成功組裝戰袍!");
    }

    public void give(String name) {
        System.out.println("送戰袍給:" + name);
        System.out.println(name + "獲取到戰袍~");
    }
}

public class HuaMuLan {

    public static void main(String[] args) {

        WeaponMaster weaponMaster = new WeaponMaster();
        weaponMaster.makeWararmor();
        weaponMaster.give("花木蘭");

    }
}

外觀模式

一個系統的功能越來越強,子系統(子模塊)就越來越多,因此客戶端如果挨個去調用子系統就會變的複雜,還需要對子系統有較深的瞭解,如果功能發生改變的時候,客戶端也需要改變,違背了開閉原則以及迪米特法則,所以我們可以爲子系統提供一個共同的對外接口。客戶端可以直接和這個外觀對象溝通。

實際應用

詳細大家可以去看源碼

jdk : java.lang.Class

spring :org.springframework.jdbc.support.JdbcUtils

tomcat : org.apache.catalina.connector.Request

mybatis : org.apache.ibatis.session.Configuration

木蘭獲得了戰衣,辭別了父母上路,宿營黃河邊,聽不見父母呼喚女兒的聲音,但能聽到黃河洶湧奔流的聲音。

幾年過去了,木蘭得勝歸來,成爲了一代巾幗英雄。

文章持續更新中,⛽️。另外 博主整理 + 原創 15萬字面試題,包括17個專題。關注“Java小咖秀”回覆“面試”即可獲得Java小咖秀面試筆記.pdf

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章