• 外观设计模式


    什么是外观模式

    外观模式(Facade Pattern)门面模式,隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。

    这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。

    使用场景:我们需要对外提供多个发送消息的接口,如果一个一个接口调用比较麻烦,我们可以我需要调用的接口封装在一个接口里面。然后我们直接访问这个一个接口就相当于访问了之前的多个接口。

    package com.example.demo.appearance;

    /**
    * 微信推送消息
    */
    public interface WeChatMessage {
    void pushMessage();
    }
    package com.example.demo.appearance;

    /**
    * 微信推送接口实现类
    */
    public class WeChatMessageImpl implements WeChatMessage {
    @Override
    public void pushMessage() {
    System.out.println("微信推送消息...");
    }
    }
    package com.example.demo.appearance;

    /**
    * 发送短信接口
    */
    public interface SmsMessage {
    void sendMsg();
    }
    package com.example.demo.appearance;

    /**
    * Sms 发送短信实现类
    */
    public class SmsMessageImpl implements SmsMessage {
    @Override
    public void sendMsg() {
    System.out.println("Sms 发送短信...");
    }
    }
    package com.example.demo.appearance;

    /**
    * 邮件消息接口
    */
    public interface EmailMessage {
    void sendMessage();
    }
    package com.example.demo.appearance;

    /**
    * email 接口实现类
    */
    public class EmailMessageImpl implements EmailMessage {
    @Override
    public void sendMessage() {
    System.out.println("邮件发送消息...");
    }
    }

    package com.example.demo.appearance;

    /**
    * 门面 将多个方法封装在一起
    */
    public class Computer {

    EmailMessage emailMessage;
    SmsMessage smsMessage;
    WeChatMessage weChatMessage;

    public Computer(){
    emailMessage=new EmailMessageImpl();
    smsMessage=new SmsMessageImpl();
    weChatMessage=new WeChatMessageImpl();
    }

    public void sendMsg(){
    emailMessage.sendMessage();
    smsMessage.sendMsg();
    weChatMessage.pushMessage();
    }

    }
    package com.example.demo.appearance;

    /**
    * 测试
    */
    public class Test {
    public static void main(String[] args) {
    Computer computer=new Computer();
    computer.sendMsg();
    }
    }
  • 相关阅读:
    学习进度笔记13
    学习进度笔记12
    学习进度笔记11
    学习进度笔记10
    学习进度笔记9
    《架构之美》读书笔记1
    学习进度笔记8
    电话拨号盘(带触摸振动反馈)
    堆排序(小根堆)
    图论起步(长期更新)
  • 原文地址:https://www.cnblogs.com/ming-blogs/p/10841985.html
Copyright © 2020-2023  润新知