土地主大威德喝茶之:外观模式

我们的主人公大维德是江苏泰兴中部一个小县城的一个暴发户的儿子,他不学无术,仗着家里开了一个厂,有着3个宅基地,好吃懒做,不学无术。虽然他还不到35岁,就已经秃顶

假如没有门面模式,那么大威德去喝茶,就要分下面几步

1.去那个茶馆

2.选一个茶叶(龙井绿茶,碧螺春绿茶)

3.烧水

4.泡茶

解决这种不便的方式就是引入门面模式。

声音甜美的 接待员 帮他把这些都一条龙办好

 

 上代码

1.定义各个步骤,比如茶馆vip会员卡检查、选茶叶、烧水、泡茶

/**
 * 子系统角色中的类:FuWuTai.java、LaoBao.java、Hotel
 */
class FuWuTai {
    //服务台检查VIP会员卡
    public void checkVip(){
        System.out.println("服务台检查VIP会员卡");
    }
}


/**
 * 选人
 */
class LaoBao {
    //根据你的需要给你推荐
    public void getMM(String require){
        if("龙井绿茶".equals(require)) {
            System.out.println("眉梢眼角藏秀气,声音笑貌露温柔," + require);
        }
        

        if("碧螺春绿茶".equals(require)) {
            System.out.println("芙蓉不及美人妆,水殿风来珠翠香,"+ require);

        }

    }
}


/**
 * 烧水
 */
class Hotel {
    //示例方法
    public void kaiFang(){
        System.out.println("烧水泡茶!");
    }
}

 各个子系统的步骤都有了,接下来就是 提供一个高层次的接口,使得子系统更易于使用:接待员

/**
 * 外观模式角色类:接待员
 */
public class YiHongYuanFacade {
    //示例方法,满足大威德找快乐的功能
    public void findHappy(){
        FuWuTai a = new FuWuTai();
        a.checkVip();
        LaoBao b = new LaoBao();
        b.getMM("龙井绿茶");
        Hotel c = new Hotel();
        c.kaiFang();
    }
}

客户端:大威德出场

public class David01 {
    public static void main(String[] args) {
        YiHongYuanFacade facade = new YiHongYuanFacade();
        facade.findHappy();
    }
}

总结:
门面模式降低了子系统与客户端之间的耦合度,使得子系统的变化不会影响调用它的客户类。

门面设计模式(Facade Design Pattern)是结构设计模式中的一种,门面模式的作用是为了帮助客户端更容易地与系统交互。

优点:

减少系统的相互依赖
提高系统灵活性:不管子系统内部如何变化,只要不影响到门面对象,就没有关系
提高系统安全性:只需要访问门面方法,内部方法不允许客户端访问

门面模式的缺点是:

不符合开闭原则,对修改关闭,对扩展开放

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值