• 外观设计模式


    什么是外观模式

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

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

    外观模式例子

    用户注册完之后,需要调用        消息接口:         阿里短信接口、邮件接口、微信推送接口,发送邮件

      把内部复杂的业务封装起来 外部调用

    废话不多说,赶紧敲代码:

       先定义各个消息类型的接口:

    发邮件:

    package WaiGuanModel;
    
    public interface EmailService {
       public void sendEmail();
    }

    微信推送:

    package WaiGuanModel;
    
    public interface WeChatService {
    
       public void sendWeChat();
        
    }

    发送短信:

    package WaiGuanModel;
    //发送短信
    public interface MessageService {
    
         public void send();
        
        
    }

    各个接口的实现类:

    package WaiGuanModel;
    
    public class EmailServiceImpl implements EmailService{
      
        public void sendEmail() {
            System.out.println("发送邮件");
            
        }
        
    }
    package WaiGuanModel;
    
    public class WeChatServiceImpl implements WeChatService{
         @Override
        public void sendWeChat() {
            System.out.println("发送微信推送");
            
        }
        
    }
    package WaiGuanModel;
    
    public class MessageServiceImpl  implements MessageService{
    
        @Override
        public void send() {
            System.out.println("发送短信");        
        }
        
    }

    来个门面类去整合一下:

    package WaiGuanModel;
    
    public class Computer {
        //定义成全局的  (如果是spring 容器会去 帮忙加载的 加载好的 下面进行调用)
        EmailService emailService;
        MessageService messageService;
        WeChatService weChatService;
        
        public Computer() {
                emailService = new EmailServiceImpl();
                messageService = new MessageServiceImpl();
                weChatService = new WeChatServiceImpl();
        }
        
        
        
        public void sendMsg(){
            emailService.sendEmail();
            messageService.send();
            weChatService.sendWeChat();
        }
        
    
    }

    客户端:

    package WaiGuanModel;
    
    public class Client {
    
        public static void main(String[] args) {
            
            new Computer().sendMsg();
        }
        
    }

    运行结果:

  • 相关阅读:
    学习Spring Boot:(八)Mybatis使用分页插件PageHelper
    学习Spring Boot:(七)集成Mybatis
    学习Spring Boot:(六) 集成Swagger2
    学习Spring Boot:(五)使用 devtools热部署
    学习Spring Boot:(四)应用日志
    学习Spring Boot:(三)配置文件
    学习Spring Boot:(二)启动原理
    学习Spring Boot:(一)入门
    Java8 新特性Stream 的学习和使用方法
    简易promise的实现(二)
  • 原文地址:https://www.cnblogs.com/toov5/p/9869873.html
Copyright © 2020-2023  润新知