外观模式(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(); } }
结果: