外观模式(Facade):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
外观模式Demo:
/**
* 2018年3月28日下午9:28:47
*/
package com.Designpattern;
/**
* @author xinwenfeng
*
*/
public class TestFacade {
/**
* @param args
*/
public static void main(String[] args) {
Facade facade = new Facade();
facade.UseA();
System.out.println("=====================");
facade.UseABC();
System.out.println("=====================");
facade.UseBC();
}
}
class SystemAForFacade{
public void FunA() {
System.out.println("复杂的A系统。");
}
}
class SystemBForFacade{
public void FunB() {
System.out.println("复杂的B系统。");
}
}
class SystemCForFacade{
public void FunC() {
System.out.println("复杂的C系统。");
}
}
class Facade{
//对每个子系统都要很了解
SystemAForFacade ASystem;
SystemBForFacade BSystem;
SystemCForFacade CSystem;
public Facade() {
ASystem = new SystemAForFacade();
BSystem = new SystemBForFacade();
CSystem = new SystemCForFacade();
}
//提供方法给外部调用,很方便的使用各种复杂子系统
public void UseA() {
System.out.println("使用A系统。");
ASystem.FunA();
}
public void UseBC() {
System.out.println("使用B系统和C系统。");
BSystem.FunB();
CSystem.FunC();
}
public void UseABC() {
System.out.println("使用ABC系统。");
ASystem.FunA();
BSystem.FunB();
CSystem.FunC();
}
}
结果: