外观模式又叫门面模式。
门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行。
门面模式提供一个高层次的接口,使得子系统更易于使用。(注:这句话来自《java与模式》)。
生活中的例子就是:婚庆一条龙服务。
人家会从头到尾帮你解决结婚过程中遇到的事情,你只管给钱就行。包括拍摄婚纱照、找酒店、主持司仪等。
我们可以把这些都看作是子系统,要完成结婚这个功能,需要跟子系统(婚纱照等)通信。
如果我们自己去找这些服务的话,很麻烦。所以我们使用外观模式---去找婚庆一条龙。
看代码:
package com.pattern.struct.facade;
public class Picture {
public void picture(){
System.out.println("拍摄婚纱照..");
}
}
package com.pattern.struct.facade;
public class Hotel {
public void hotel(){
System.out.println("订酒店..");
}
}
package com.pattern.struct.facade;
public class Emcee {//司仪
public void emcee(){
System.out.println("主持 司仪....");
}
}
package com.pattern.struct.facade;
public class OneDragonFacade {
private Picture picture;
private Hotel hotel;
private Emcee emcee;
public OneDragonFacade(){
this.picture = new Picture();
this.hotel = new Hotel();
this.emcee = new Emcee();
}
public void marry(){
this.picture.picture();
this.hotel.hotel();
this.emcee.emcee();
}
}
package com.pattern.struct.facade;
public class Client {
public static void main(String[] args) {
OneDragonFacade facade = new OneDragonFacade();
facade.marry();
}
}