您的位置:首页 > 编程语言 > Go语言

设计模式GOF23——外观模式

2016-08-06 22:01 309 查看
外观模式(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("购买了来回的车票");
}
}


模式的评价

外观模式是设计模式中用的比较多的一个。它非常符合迪米特法则,将操作的具体实现细节隐藏起来,降低耦合,减少复杂度。而且它有利于单一职责原则,让类专注的只做自己这一层次的功能。它还提高了便捷性,客户端无需处理操作的细节中的逻辑,只需要调用外观角色即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计模式