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

    什么是外观模式

    外观模式(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();
        }
        
    }

    运行结果:

  • 相关阅读:
    169. Majority Element
    283. Move Zeroes
    1331. Rank Transform of an Array
    566. Reshape the Matrix
    985. Sum of Even Numbers After Queries
    1185. Day of the Week
    867. Transpose Matrix
    1217. Play with Chips
    766. Toeplitz Matrix
    1413. Minimum Value to Get Positive Step by Step Sum
  • 原文地址:https://www.cnblogs.com/toov5/p/9869873.html
Copyright © 2011-2022 走看看