门面模式说对象的结构模式。外部与一个子系统的通信必须通过一个系统的一个门面对象进行,这就是门面模式。门面模式也成为外观模式、正面模式。
这个模式在系统中经常被用到,也是一个比较简单的模式。
如下例子,用户只需要知道去开机就可以了,其不必知道开机的具体过程。
门面模式的UML图:
代码:
门面Computer.java
package Facade;
//门面
public class Computer {
private Power power = new Power();
private Bios bios = new Bios();
private OperatingSystem system = new OperatingSystem();
// 开机方法
public void StartUp() {
power.start();
bios.start();
system.start();
}
// 关机方法
public void ShutDown() {
system.off();
bios.off();
power.off();
}
}
//电源类Power.java
package Facade;
//电源类
public class Power {
public int start() {
System.out.println("启动电源成功");
return 0;
}
public int off() {
System.out.println("关闭电源成功");
return 0;
}
}
//主板类Bios.java
package Facade;
// 主板类
public class Bios {
public int start() {
System.out.println("启动主板成功");
return 0;
}
public int off() {
System.out.println("关闭主板成功");
return 0;
}
}
//操作系统类OperatingSystem.java
package Facade;
//操作系统类
public class OperatingSystem {
public int start() {
System.out.println("启动操作系统成功");
return 0;
}
public int off() {
System.out.println("关闭操作系统成功");
return 0;
}
}
//客户端测试代码Client.java
package Facade;
public class Client {
public static void main(String[] args) {
Computer computer = new Computer();
computer.StartUp();
}
}