設計模式: 外觀模式

概念

使用外觀模式,可以爲子系統中的一組接口提供一個一致的界面,此模式定義了一個高層接口,這個接口使得這一子系統更加容易。

代碼

類一

public class SunWukong {
    public void pickUpWeapon(){
        System.out.println("孫悟空拿起了金箍棒");
    }

    public void dropWeapon() {
        System.out.println("孫悟空扔掉了金箍棒");
    }
}

類二

public class ZhuBajie {
    public void stop(){
        System.out.println("豬八戒嘗試阻止大師兄");
    }

    public void complain(){
        System.out.println("豬八戒開始埋怨");
    }
}

類三

public class TangSeng {
    public void scared(){
        System.out.println("唐僧被嚇到了");
    }

    public void chant(){
        System.out.println("唐僧念起來緊箍咒");
    }
}

外觀類

public class Facade {
    ZhuBajie zhuBajie;
    SunWukong sunWukong;
    TangSeng tangSeng;

    public Facade() {
        zhuBajie = new ZhuBajie();
        sunWukong = new SunWukong();
        tangSeng = new TangSeng();
    }

    public void monsterBoneComing(){
        System.out.println("白骨精來了");
        sunWukong.pickUpWeapon();
        zhuBajie.stop();
        tangSeng.scared();
    }

    public void monsterBoneKilled(){
        System.out.println("白骨精");
        sunWukong.dropWeapon();
        zhuBajie.complain();
        tangSeng.scared();
    }
}

客戶端

public class Client {
    public static void main(String[] args) {
        Facade facade = new Facade();
        facade.monsterBoneComing();
        facade.monsterBoneKilled();
    }
}

//        白骨精來了
//        孫悟空拿起了金箍棒
//        豬八戒嘗試阻止大師兄
//        唐僧被嚇到了
//        白骨精
//        孫悟空扔掉了金箍棒
//        豬八戒開始埋怨
//        唐僧被嚇到了

特點

使用設計模式,可能會產生一系列小的類,逐個調用可能會很麻煩,使用外觀模式可以一起調用這些類的方法。或者在層與層之間創建外觀,提供一個簡單的接口,降低耦合度。維護一箇舊的系統時,也可以使用外觀模式,使用外觀模式維護舊系統的所有接口,新的系統只負責與外觀模式暴露的接口對接,降低新舊系統的關聯性。

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