美文网首页
设计模式是什么鬼(门面)

设计模式是什么鬼(门面)

作者: xiaotian是个混子 | 来源:发表于2019-07-14 21:44 被阅读0次

作者:凸凹里歐

来源:轻文社 微信号:Todd-Leo

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

image

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

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();
        //谁洗碗呢?一场战场一触即发……
    }
}

期盼总是美好的……

image

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

image

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

 public class Facade {
 
     private VegVendor vv;
     private Chef chef;
     private Waiter waiter;
     private Cleaner cleaner;
 
     public Facade() {
         this.vv = new VegVendor();
        //开门前就找菜贩子准备好蔬菜
        vv.sell();
        //当然还得雇佣好各类饭店服务人员
        this.chef = new Chef();
        this.waiter = new Waiter();
        this.cleaner = new Cleaner();
    }

    public void provideService(){
        //接待,入座,点菜
        waiter.order();
        //找厨师做饭
        chef.cook();
        //上菜
        waiter.serve();
        //收拾桌子,洗碗,以及其他工序……
        cleaner.clean();
        cleaner.wash();
    }
}

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

image

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

相关文章

  • 设计模式是什么鬼(门面)

    开门见山,门,建筑物的入口,面,脸也。门面(Facade),通常指店铺的门头外表部分,当然一定要临街才是好的商铺,...

  • 设计模式是什么鬼(门面)

    作者:凸凹里歐来源:轻文社 微信号:Todd-Leo 开门见山,门,建筑物的入口,面,脸也。门面(Facade...

  • 设计模式-门面模式

    一:门面模式的定义 外观模式的目的不是给予子系统添加新的功能接口,而是为了让外部减少与子系统内多个模块的交互,松散...

  • 设计模式—门面模式

    门面(Facade)模式的定义:是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式...

  • 门面模式设计

    门面模式 两个作用: 1、简化类的接口 2、消除类与使用它的客户代码之间的耦合 门面模式常常是开发人员最亲密的朋友...

  • 外观模式(Facede)

    本文参考自: 《JAVA设计模式》之外观模式(Facade) 1. 作用 外观模式也叫门面模式,门面模式是对象的结...

  • OkHttp的使用之设计模式

    使用的设计模式有: 创建者模式 策略模式 门面模式 责任链模式

  • {C#}流畅方法.门面

    背景 可以参考门面设计模式的思路,设计流畅方法 示例

  • 设计模式3.7 门面模式

    点击进入我的博客 门面模式(Facade Pattern)要求一个子系统的外部与其内部通信,必须通过一个统一的门面...

  • Java设计模式 - 门面模式

    定义 门面模式又叫做外观模式,是常见的设计模式之一。在代码中可能无意之中就会使用到门面模式,甚至一些第三方开源 S...

网友评论

      本文标题:设计模式是什么鬼(门面)

      本文链接:https://www.haomeiwen.com/subject/hczikctx.html