外观模式
核心
为子系统提供统一的入口,封装子系统的复杂性,便于客户端调用
代码
public class Client { //服务员直接就给充好咖啡,放到面前。这就是享受生活 public static void main(String[] args) { Waiter wait = new Waiter(); wait.fill(); } } //拿铁咖啡 class CafeLatte { public void Fill() { System.out.println("冲拿铁咖啡"); } } //牛奶咖啡 class WhiteCoffee { public void fill() { System.out.println("冲牛奶咖啡"); } } class MochaCoffee { public void fill() { System.out.println("冲摩卡咖啡"); } } //Waiter class Waiter //增加一个服务者类 { CafeLatte CL; WhiteCoffee WC; MochaCoffee MC; public Waiter() { CL = new CafeLatte(); WC = new WhiteCoffee(); MC = new MochaCoffee(); } public void fill() { CL.Fill(); WC.fill(); MC.fill(); } }
门面模式与中介模式区别
- 门面模式是结构型模式,中介者模式是行为型模式。
- 门面模式是对子系统提供统一的接口,中介者模式是用一个中介对象来封装一系列同事对象的交互行为。
- 门面模式协议是单向,中介者模式协议是双向。
- 门面模式所有的请求处理都委托给子系统完成,而中介者模式则由中心协调同事类和中心本身共同完成业务。