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();
    }
    }
  • 相关阅读:
    数据结构实验之链表一:顺序建立链表
    数据结构实验之链表五:单链表的拆分
    最终排名
    选夫婿1
    数据结构实验之链表三:链表的逆置
    数据结构实验之链表二:逆序建立链表
    数据结构实验之链表四:有序链表的归并
    水题
    win32线程简单封装
    Boost 1.46.1,vc2005, 编译
  • 原文地址:https://www.cnblogs.com/ming-blogs/p/10841985.html
Copyright © 2011-2022 走看看