开门见山,门,建筑物的入口,面,脸也。门面(Facade),通常指店铺的门头外表部分,当然一定要临街才是好的商铺,在人流量大的地方营造更好的视觉冲击,这样会有更多等等机会暴露给潜在顾客,否则只能是靠“酒香不怕巷子深”,靠味道来吸引人了。

当然除了光鲜亮丽的外表,更重要的是门店提供的服务了。就拿餐饮来举例吧,如果没有这些门店我们都怎样吃饭呢?我们自己做又不会,算了还是找女友下厨吧。很简单分三步走,首先找菜贩买菜,其次女友下厨,最后吃完洗碗,打完收工代码如下。

public class VegVendor {//菜贩子public void sell(){System.out.println("菜贩子卖菜。。。");}}
public class GirlFriend {//女友public void cook(){System.out.println("女友烹饪。。。");}}
public class Me {public void eat(){System.out.println("我只会吃。。。");}public static void main(String[] args) {//找菜贩子买菜VegVendor vv = new VegVendor();vv.sell();//找女友做饭GirlFriend gf = new GirlFriend();gf.cook();//我只会吃Me me = new Me();me.eat();//谁洗碗呢?一场战场一触即发……}
}

期盼总是美好的……

可现实是残酷的……恩,不管怎样至少我们是把饭给吃完了,不吃完也不行啊。

其实我们不该找女友做饭的,而是应该雇一个专业厨师,可这下来得多大花费啊,太划不来了,也许还得我们自己洗碗……哎。其实我们也不想麻烦,还是找门店来解决吧,至于那些买菜啊,烹饪啊,洗碗收拾桌子啊我们统统都不用管了,门店可以进行资源整合与调度,这样我们吃饭就变得如此简单了,只需要付钱就行了,毕竟我们只会吃。

 1 public class Facade {23    private VegVendor vv;4    private Chef chef;5    private Waiter waiter;6    private Cleaner cleaner;78    public Facade() {9        this.vv = new VegVendor();
10        //开门前就找菜贩子准备好蔬菜
11        vv.sell();
12        //当然还得雇佣好各类饭店服务人员
13        this.chef = new Chef();
14        this.waiter = new Waiter();
15        this.cleaner = new Cleaner();
16    }
17
18    public void provideService(){
19        //接待,入座,点菜
20        waiter.order();
21        //找厨师做饭
22        chef.cook();
23        //上菜
24        waiter.serve();
25        //收拾桌子,洗碗,以及其他工序……
26        cleaner.clean();
27        cleaner.wash();
28    }
29 }

这下可爽了,我们再也不用去花费时间去调动那么多资源,又是出门买菜,又是找女友做菜,洗碗擦桌什么的。所以我们急需一个门面来解决这些问题,如果没有门面的话,试想每家每户每顿都做饭的话,于是我们放弃我们的专业优势,整天花很长时间做饭才能不饿肚子,如此劳动分工不明确,社会生产率低下,国家经济生产不景气,最后造成GDP下滑,这就是亚当斯密的劳动分工理论。

其实这就是门面模式的用法了,门面就是一个大系统,里面封装了很多的子部件(或子系统),部件之间也许有复杂的逻辑关系,对于我们旁观者来说,直接使用这些子部件是非常麻烦的一件事情,所以门面就充当了一个包装类的角色,并且对外暴露一个接口,达到简化客户操作的目的,同时也是对客户端与子系统之间的解耦。

JAVA设计模式什么鬼(门面)——作者:凸凹里歐相关推荐

  1. JAVA设计模式什么鬼(备忘录)——作者:凸凹里歐

    备忘录,备份曾经发生过的历史记录,以防忘记,之后便可以轻松回溯过往.想必我们曾经都干过很多蠢事导致糟糕的结果,当后悔莫及的时候已经是覆水难收了,只可惜这世界上没有后悔药,事后我们能做的只能去弥补过失, ...

  2. JAVA设计模式什么鬼(策略)——作者:凸凹里歐

    策略,Strategy,古时也称"计",为了达成某个目标的方案,目标不同,方案也随之更改.例如特工执行任务时总要准备好几套方案以应对突如其来的变化,A计划实施过程中情况突变导致预案 ...

  3. JAVA设计模式什么鬼(状态)——作者:凸凹里歐

    状态State,指某事物所处的状况或形态,比如水的三态,零下会变成固态冰,常温会是液态水,100℃会蒸发成气态的水蒸气. 在这个地球生态系统中,水的总量并不会增加,也不会减少,只是随着温度的变化其分子 ...

  4. JAVA设计模式什么鬼(代理)——作者:凸凹里歐

    代理,代表打理,以他人的名义代表委托人打理其本职工作之外或不所能及的事务,达成合作关系并更高效地促成事务完成的目的.例如明星经纪人,他们并没有像明星一样会唱歌.跳舞或演戏,而是替明星打理一些无暇顾及的 ...

  5. JAVA设计模式什么鬼(初探)——作者:凸凹里歐

    有物混成,先天地生.寂兮寥兮,独立而不改,周行而不殆,可以为天地母.吾不知其名,字之曰道,强为之名曰大.大曰逝,逝曰远,远曰反. 道是什么?道可道,非常道.道不明,说不尽的才算是道,它是自然法则的终极 ...

  6. JAVA设计模式什么鬼(适配器)——作者:凸凹里歐

    我们这个世界,充满着千奇百怪的对象,更有趣的是对象与对象间是存在着互动,沟通,这样世界才变得美妙.那到底是怎样互动呢?靠什么才能互动呢?是的,接口.比如你和朋友一起喝茶聊天,我们暂且不管声带,耳膜这些 ...

  7. JAVA设计模式什么鬼(装饰)——作者:凸凹里歐

    装饰,在某物件基础上加以修饰,装点,使得原本的朴素变得华丽,达到化腐朽为神奇的效果.比如我们从开发商买来的毛坯房,必然要进行室内装潢这么一项工程,什么简约风啊,北欧风啊,地中海,美式中式等等,当然萝卜 ...

  8. JAVA设计模式什么鬼(模板方法)——作者:凸凹里歐

    面向对象,是对事物属性与行为的封装,方法,指的就是行为.模板方法,显而易见是说某个方法充当了模板的作用,其充分利用了抽象类虚实结合的特性,虚部抽象预留,实部固定延续,以达到将某种固有行为延续至子类的目 ...

  9. JAVA设计模式什么鬼(中介)——作者:凸凹里歐

    中介,作用于多个事物之间充当交互沟通的媒介.我们的生活中有各种各样的媒介,比如一些传统媒体,书刊杂志,报纸,把信息传递给读者.再比如利用电子信息技术的互联网,作为一种新媒体,不单可以更高效地把信息传递 ...

最新文章

  1. Activity 数据传递给Fragment
  2. 运行scrapy保存图片,报错ValueError: Missing scheme in request url: h
  3. C 数据结构之十大排序
  4. 电子计算机信息工程都是做什么的,电子信息工程专业将来干什么 就业前景好不好...
  5. python为什么closed_为什么python类的函数被调用两次[关闭](Why a function of python class is called twice [closed])...
  6. ambassador 学习七 Mapping说明
  7. validform 一行代码完成所有验证
  8. SQL Server中char与nchar区别
  9. 计算机网络课设--小型企业网络的规划与设计
  10. 98版本QQ五笔词库转98版万能五笔词库
  11. 转载:APM文件夹释义
  12. 我的爬虫 之 爬今日头条街拍图片
  13. IDEA 没识别 resources(找不到 resources)
  14. 电游入侵传统教育,用练级学习
  15. JDK的最新版的下载与安装
  16. 九大数据分析方法:结构分析法
  17. 2-2 用Plot函数绘图
  18. 爬虫实战——绝对通俗易懂,爬取房产数据
  19. C++软件工程师面试题汇总
  20. QT textEdit的读取和设置

热门文章

  1. GitHub Gist 指南
  2. Java:字符串(String)类型转成整型(int)的方法
  3. 人工智能系统中有哪些有前途的研究方向?
  4. Java jar命令打可执行的jar包
  5. 小波神经网络wavelet neural network
  6. Blender:Lowpoly人物模型
  7. 更换Unity Asset Store的位置
  8. 追光几何助力RoboMaster,提升10倍效率轻松管理机械设计图纸
  9. linux自动开启小键盘,linux默认开启小键盘
  10. aps软件中的运营管理至关重要