> 文档中心 > 设计模式.外观模式Facade

设计模式.外观模式Facade


定义

外观模式,一般用在子系统与访问之间,用于对访问屏蔽复杂的子系统调用,采用耳目一新的外观类提供的简单的调用方法,具体的实现由外观类去子系统调用。

外观模式是一种中间件类型的模式,使用外观模式之后子系统的方法调用并非完全屏蔽,只是为访问者提供了一种更佳的访问方式,如果你不嫌麻烦,任然可以直接进行子系统方法调用。

举例

就是将几个类的方法合并一个。

比如:计算机类集成了,硬盘,主机,显示屏。

计算机的一个关机,可能调用硬盘关闭,主机关闭,显示屏关闭等等。

类图

实现

(com.haiwei.structure.facde)

public class ComputerFacad { private ICpu cpu;    private IScreen screen; public ComputerFacad(ICpu cpu, IScreen screen) { super(); this.cpu = cpu; this.screen = screen;    } public void startComputer(){ this.cpu.start(); this.screen.start();    }}调用new ComputerFacad(new CPU(),new Screen()).startComputer();

优点

1、松散耦合

外观模式松散了客户端和子系统的耦合关系,让子系统内部的模块能更容易扩展和维护。

2、简单易用

客户端不需要了解系统内部的实现,也不需要和众多子系统内部的模块交互,只需要和外观类交互就可以了。

3、更好地划分层次

通过合理使用Facade,可以帮助我们更好地划分层次。有些方法是系统对内的,有些方法是对外的,把需要暴露给外部的功能集中到Facade中,这样既方便客户端使用,也很好地隐藏了内部的细节。