3.3 《硬啃设计模式》第12章 超级手机 - 外观模式(Facade Pattern)

你需要设计一台超级手机的操作系统,用户可以对各个方面进行详细的定制,如:铃声、桌面、图标、颜色、播放器喜好、浏览器设置等等。
太详细的设置对于一般用户来说太复杂了,但高级用户又很喜欢这些超详细的设置。
你有什么好的设计方案?

先分析一下几种类型的手机用户:
发烧型:事无大小什么都喜欢试一试,手机的所有功能都想去琢磨一下。
懒惰型:喜欢简单,最好就是能有一些什么会议模式、户外模式之类的,只需要选了相应模式,就自动设好全部相关内容。
中庸型:大部分情况下喜欢简单,但偶尔也会发烧。

手机的操作系统,可能是这样设计的:

外观1.png  

程序可以调用各类的各种方法,对手机进行详细的设置。
Ring.SelectMusic();
Screen.SetBrightness();
Icon.SetIcon();
……

这样详细的设置,对于发烧友来说自然是好事,但对于贪图简单的用户来说就有点烦了,要调用几十次这样的方法。

我们看看应用了外观模式的设计:

外观2.png  

该设计在原来设计基础上增加了EasyMode类,将常用的操作包装进去。EasyMode含有原来各类的引用,将各类常见操作写进各方法中。用户只需要调用EasyMode的方法,就能起到要分别调用各类方法的效果,节省了不少工作。喜欢高级操作的用户,则可以不理EasyMode类,直接调用原来各类的方法。

外观模式 类图

外观3.png  

外观模式最核心思想就是同时提供复杂接口和简单接口,供调用者根据需要使用。




请看下一文……
 
 
 

作者:张传波

创新工场创业课堂(敏捷课程)讲师

软件研发管理资深顾问

CMMI首席专家

《火球——UML大战需求分析》作者

《硬啃设计模式》作者

www.umlonline.org创办人


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张传波

打赏的朋友很帅噢!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值