漫画:木兰从军之外观模式

作者 | 小小小咖

本文经授权转载自JAVA小咖秀(ID:javaxiaokashow)

唧唧复唧唧,木兰当户织。不闻机杼声,惟闻女叹息。

外观模式的基本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

木兰获得了战衣,辞别了父母上路,宿营黄河边,听不见父母呼唤女儿的声音,但能听到黄河汹涌奔流的声音。

几年过去了,木兰得胜归来,成为了一代巾帼英雄。


防水耐脏,超大容量双肩包,限时拼团仅需49元


 热 文 推 荐 

当今流行技术,SQL、Java、Python、C++ 皆上榜,它的表现最惊艳!

1949-2019,70 年 50 种不同编程语言的“Hello World”大盘点!

程序员有哪些接私活渠道?| 程序员有话说

自学编程、玩 vlog,90 后程序员们的冠军之路

【经典必看】14个实用的数据库设计技巧

贾扬清:为什么说数据智能和云原生之间是“天作之合”?

大白话讲解比特币白皮书,十年后它依然是学习区块链的最佳资料,你真的读懂了吗?

你点的每个“在看”,我都认真当成了喜欢

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值