美文网首页
设计模式7 - 门面模式【Facade Pattern】

设计模式7 - 门面模式【Facade Pattern】

作者: 阿甘兄 | 来源:发表于2019-08-26 13:59 被阅读0次

门面模式

定义:是指提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使得子系统更容易使用。

例子(投递信件,流程封装在类里面):

这里写图片描述

写信流程类:

/**
* 定义一个写信的过程
*/
public interface LetterProcess { 

    //首先要写信的内容
    public void writeContext(String context); 
     
    //其次写信封
    public void fillEnvelope(String address); 
     
    //把信放到信封里
    public void letterInotoEnvelope(); 
     
    //然后邮递
    public void sendLetter(); 
 
} 

/**
* 写信的具体实现了
*/
public class LetterProcessImpl implements LetterProcess { 
    
    //写信
    public void writeContext(String context) { 
         System.out.println("填写信的内容...." + context); 
    } 
 
    //在信封上填写必要的信息
    public void fillEnvelope(String address) { 
         System.out.println("填写收件人地址及姓名...." + address); 
    } 
    
    //把信放到信封中,并封好
    public void letterInotoEnvelope() { 
         System.out.println("把信放到信封中...."); 
    } 
    
    //塞到邮箱中,邮递
    public void sendLetter() { 
         System.out.println("邮递信件..."); 
    } 
}

门面类:

/**
*门面类
*/
public class ModenPostOffice { 

private LetterProcess letterProcess = new LetterProcessImpl(); 
 
//写信,封装,投递,一体化了
public void sendLetter(String context,String address){ 
     //帮你写信
     letterProcess.writeContext(context); 
     
     //写好信封
     letterProcess.fillEnvelope(address); 
     
     //把信放到信封中
     letterProcess.letterInotoEnvelope(); 
     
     //邮递信件
     letterProcess.sendLetter(); 
 } 
} 


主程序调用:

public class Client { 
    public static void main(String[] args) { 
         //现代化的邮局,有这项服务,邮局名称叫Hell Road
         ModenPostOffice hellRoadPostOffice = new ModenPostOffice(); 
 
         //你只要把信的内容和收信人地址给他,他会帮你完成一系列的工作;
         String address = "Happy Road No. 666,God Province,Heaven"; //定义一个地址
         String context = "Hello,It's me,do you know who am? I'm your old lover. 
I'd like to...."; 

         hellRoadPostOffice.sendLetter(context, address); 
 
 } 
} 

总结:
是一个很好的封装方法,一个子系统比较复杂的实话,比如算法或者业务比较复杂,就可以封装出一个或多个门面出来,项目的结构简单,而且扩展性非常好。

相关文章

网友评论

      本文标题:设计模式7 - 门面模式【Facade Pattern】

      本文链接:https://www.haomeiwen.com/subject/acirectx.html