设计模式: 外观模式

概念

使用外观模式,可以为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易。

代码

类一

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();
    }
}

//        白骨精来了
//        孙悟空拿起了金箍棒
//        猪八戒尝试阻止大师兄
//        唐僧被吓到了
//        白骨精
//        孙悟空扔掉了金箍棒
//        猪八戒开始埋怨
//        唐僧被吓到了

特点

使用设计模式,可能会产生一系列小的类,逐个调用可能会很麻烦,使用外观模式可以一起调用这些类的方法。或者在层与层之间创建外观,提供一个简单的接口,降低耦合度。维护一个旧的系统时,也可以使用外观模式,使用外观模式维护旧系统的所有接口,新的系统只负责与外观模式暴露的接口对接,降低新旧系统的关联性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值