设计模式之门面模式

  1. 什么是门面模式(Facade)

    • 门面模式,也叫作外观模式,是一种常见的封装模式。
    • 要求一个子系统的外部与内部的通信必须通过一个统一的对象进行。
    • 门面模式提供一个高层次的接口,使得子系统更易于使用。
  2. 代码示例

    • 在我们的日常生活中,通常我们寄送信件的时候,都是通过邮局这一个统一的接口来运作的。
    • 对于寄信的我们而言,并不关心邮局怎么进行通信和寄送,简单一点,假设我们只是信的内容的提供者,那么我们只想提供给邮局他们需要的物品(信,邮票,信封),其他的具体怎么处理归邮局完善。
    • 下面的代码就是这样,对于客户端代码而言,只需要调用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);
    }

}

你可能感兴趣的:(设计模式)