门面模式

门面模式

门面模式:一个子系统的内部和外部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。
角色:1.Facade门面角色:客户端调用这个方法。此角色知道子系统的所有功能。本角色将所有从客户端发出的请求委派到子系统去。该角色本身并没有任何实际功能,只是一个委托类。(不参与子系统的逻辑)
2.subsystem子系统角色:子系统就是功能的执行者。它并不知道门面的存在。对子系统而言,门面角色就是另外一个客户端。
适用场景:为一个复杂的子系统或者模块提供一个外部访问的接口
具体实现:写信有四个过程:写信,写信封,封好,寄出去

通用实现

1.创建子系统接口

/**
 * 写信接口
 * 子系统
 */
public interface LetterProcess {
    public void write(String context);  //写信
    public void fill(String address);   //写信封
    public void letter();  //封好
    public void send();   //邮寄
}

2.创建子系统实现类

/**
 * 写信实现类
 */
public class LetterProcessImpl implements LetterProcess{
    @Override
    public void write(String context) {
        System.out.println("信的内容:"+context);
    }

    @Override
    public void fill(String address) {
        System.out.println("信的封面:"+address);
    }

    @Override
    public void letter() {
        System.out.println("封好信封");
    }

    @Override
    public void send() {
        System.out.println("寄出去");
    }
}

3.创建门面角色

/**
 * 邮局
 * 门面角色
 * 一般门面角色不负责功能的执行顺序
 * 对于这种要按顺序执行的,一般用一个类封装好了再交给门面处理
 * 这里就不封装了,直接在门面里面确定顺序
 */
public class ModenPostOffice {
    private LetterProcess letterProcess = new LetterProcessImpl();
    //写信一体化,直接完成整个过程
    public void sendLetter(String context,String address){
        letterProcess.write(context);
        letterProcess.fill(address);
        letterProcess.letter();
        letterProcess.send();
    }
}

4.创建场景测试类

/**
 * 场景测试类
 */
public class Client {
    public static void main(String[] args) {
        ModenPostOffice modenPostOffice = new ModenPostOffice();
        String context = "你好,远方的人";
        String address = "天堂路119号";
        modenPostOffice.sendLetter(context,address);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值