zoukankan      html  css  js  c++  java
  • 外观设计模式

    什么是外观模式

    外观模式(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();
    }
    }
  • 相关阅读:
    android学习之4种点击事件的响应方式
    python Eve RESTFul 尝试笔记
    完成端口学习笔记(一):完成端口+控制台 实现文件拷贝
    POJ3080:Blue Jeans
    如何让ros支持C++11标准
    ros卸载
    文件读写
    sys.exit()主动结束程序
    python函数查询、数学和比较操作符、二元操作符
    labellmg使用方法
  • 原文地址:https://www.cnblogs.com/ming-blogs/p/10841985.html
Copyright © 2011-2022 走看看