设计模式GOF23——外观模式

外观模式(facade)是结构性模式的一种,也有人称它为门面模式。结构型模式的核心作用是从程序的结构上实现低耦合,从而可以扩大整体的类结构,用来解决更大的问题。

模式的核心

外观模式的核心就是为子系统提供统一的入口,封装系统的复杂性,便于客户端调用。

模式角色

外观角色:在客户端可以调用它的方法,它会把客户端调用需要的操作放在一起,并且封装起来,对外不暴露细节。
子系统角色:子系统是客户端使用该功能的时候需要调用的对象们。

模式的实现

//外观角色
public class Tour {
    //子系统的调用和子系统的操作封装
    public void myTour(){
        Hotle h = new Hotle();
        h.reserve();
        Spots s = new Spots();
        s.buyTicket();
        Transport t = new Transport();
        t.buyTickets();
    }
}
//子系统角色
class Hotle{
    //子系统角色中需要调用的方法
    public void reserve(){
        System.out.println("预定本家酒店");
    }
}
//子系统角色
class  Spots {
    //子系统角色中需要调用的方法
    public void buyTicket(){
        System.out.println("购买了本景点的票");
    }
}
//子系统角色
class  Transport{
    //子系统角色中需要调用的方法
    public void buyTickets(){
        System.out.println("购买了来回的车票");
    }
}

模式的评价

外观模式是设计模式中用的比较多的一个。它非常符合迪米特法则,将操作的具体实现细节隐藏起来,降低耦合,减少复杂度。而且它有利于单一职责原则,让类专注的只做自己这一层次的功能。它还提高了便捷性,客户端无需处理操作的细节中的逻辑,只需要调用外观角色即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值