外观模式
核心
为子系统提供统一的入口,封装子系统的复杂性,便于客户端调用




代码
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();
}
}
门面模式与中介模式区别
- 门面模式是结构型模式,中介者模式是行为型模式。
- 门面模式是对子系统提供统一的接口,中介者模式是用一个中介对象来封装一系列同事对象的交互行为。
- 门面模式协议是单向,中介者模式协议是双向。
- 门面模式所有的请求处理都委托给子系统完成,而中介者模式则由中心协调同事类和中心本身共同完成业务。