设计模式学习——外观模式

设计模式学习——外观模式

很久没有拿出时间来写一些东西了。最近在学习设计模式的内容,收益匪浅,打算写一个系列。

表述

将复杂的子系统内容,整合成简约、学习成本低的接口。

举例

我们早晨出门上班,虽然每天都做得没有感觉复杂,但是在代码中体现,就会是这样:

breadMarker.make();
door.open();
dorr.close();
car.start();//省略插钥匙等等操作
car.run();   
……
company.punchCard();
computer.init();
computer.openOffice();

是不是突然发现,每天早晨做的事情,原来这么复杂!那我每次在上班的时候,如果漏掉了一项怎么办(忘记房门钥匙,公司员工卡等)?
可以看出,复杂的子系统对使用者来说,学习成本太高,并且容易出现漏洞。那么我们将这些子系统接口统一起来:

/*
*  上班
*/
public void goToWork(){
    breadMarker.make();
    door.open();
    door.close();
    car.start();//省略插钥匙等等操作
    car.run();   
    ……
    company.punchCard();
    computer.init();
    computer.openOffice();
}

以后在要“上班”的时候,只要调用goToWork()方法,就能快捷实现功能,不需要学习那么多的子系统接口。这样降低了学习成本,并且提高效率。
这样,我们就实现了外观模式,并且:我们不将子系统接口阻隔,用户想要实现自定义功能时,依然可以调用子系统的内容,比如不想锁门等等。

总结

外观模式是设计模式中非常简单的一种,在平时编写程序时,我们也会不自觉的将可复用功能代码封装提取。
外观模式:内部整合复杂的子系统接口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值