什么是门面模式(Facade)
- 门面模式,也叫作外观模式,是一种常见的封装模式。
- 要求一个子系统的外部与内部的通信必须通过一个统一的对象进行。
- 门面模式提供一个高层次的接口,使得子系统更易于使用。
代码示例
- 在我们的日常生活中,通常我们寄送信件的时候,都是通过邮局这一个统一的接口来运作的。
- 对于寄信的我们而言,并不关心邮局怎么进行通信和寄送,简单一点,假设我们只是信的内容的提供者,那么我们只想提供给邮局他们需要的物品(信,邮票,信封),其他的具体怎么处理归邮局完善。
- 下面的代码就是这样,对于客户端代码而言,只需要调用sendMail方法就足够了(这就是统一的门面)
package com.pattern.facade;
public class Mail {
private String content;
private String envolop;
private String stamp;
public void setContent(String content){
this.content = content;
}
public void setEnvolop(String envolop){
this.envolop = envolop;
}
public void setStamp(String stamp){
this.stamp = stamp;
}
}
package com.pattern.facade;
public class PostOffice {
public PostOffice() {
}
public void sendMail(String content,String envolop,String stamp){
Mail mail = new Mail();
mail.setContent(content);
mail.setEnvolop(envolop);
mail.setStamp(stamp);
System.out.println("send mail !");
}
}
package com.pattern.facade;
public class Client {
public static void main(String[] args) {
String content = new String("this is test content");
String envolop = new String("envolop");
String stamp = new String("stamp");
PostOffice postOffice = new PostOffice();
postOffice.sendMail(content, envolop, stamp);
}
}