【设计模式学习笔记】Facade

通常Facade有译作“外观”和“门面”的两种。个人认为译作“门面”虽然显得不是那么“雅”,却比较形象。

Facade模式的核心思想是将接口集中地发布,并隐藏不必要的接口,以达到更好的封装效果。它体现的设计原则中的“高内聚”


我们可以设想以下情景:

一个高度自动化生产的工厂,厂房中分布着各种不同的生产设备。但作为工厂的负责人,我不希望工人们可以随意地操作这些设备,因为我的工人们并不是工程师,对这些设备并不很了解,而我又付不起专业人员高昂的薪水。我应该如何解决这个问题呢?


我会建一间中控室,通过复杂的布线过程将所有设备连接到中控室中,同时封闭所有设备的开关,使得这些设备只能通过中控室的操作面板进行控制。而中控室的操作面板是定制好的,通过面板上的操作不会对机器造成任何损伤,也不会破坏生产的流程,生产工作会保持稳定有序地运行。

这个中控室就是所谓的“门面”。


在我们进行面向对象程序设计的过程中,一个功能模块可能由很多类组成,它们之间协同工作,互相依赖,通过相当多的复杂逻辑进行组合,实现了一个功能。在这个过程中是没有必要让外界介入的——来自外部的干扰不仅对过程没有任何好处,还可能造成错误。


Facade很简单,也很实用。不过为了更好的实现,还是有些问题需要注意:

1. internal关键字的使用(C#)

2. 多层Facade的嵌套

3. 如何在接口简化和接口调用的灵活性之间作权衡。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值