什么是外观模式
外观模式(Facade Pattern)门面模式,隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向 现有的系统添加一个接口,来隐藏系统的复杂性。
这种模式设计到一个单一的类,改类提供了客户端请求的简化方法和对现有系统类方法的委托调用。
外观模式的例子
用户注册完之后,需要调用阿里短信接口,邮件接口,微信推送接口。
package com.evan.springboot.designStudy.FacadeDemo;
/**
* @author evanYang
* @version 1.0
* @date 2020/05/03 09:46
*/
public interface AliSmsService {
public void sendSms();
}
public class AliSmsServiceImpl implements AliSmsService {
@Override
public void sendSms() {
System.out.println("阿里发送信息");
}
}
package com.evan.springboot.designStudy.FacadeDemo;
/**
* @author evanYang
* @version 1.0
* @date 2020/05/03 09:42
*/
public interface EmailSmaService {
public void sendSms();
}
public class EmailServiceImpl implements EmailSmaService {
@Override
public void sendSms() {
System.out.println("136邮箱发送邮件");
}
}
package com.evan.springboot.designStudy.FacadeDemo;
/**
* @author evanYang
* @version 1.0
* @date 2020/05/03 09:44
*/
public interface WechatSmsService {
public void sendSms();
}
package com.evan.springboot.designStudy.FacadeDemo;
/**
* @author evanYang
* @version 1.0
* @date 2020/05/03 09:45
*/
public class WechatSmsServiceImpl implements WechatSmsService {
@Override
public void sendSms() {
System.out.println("微信发送消息");
}
}
门面类
package com.evan.springboot.designStudy.FacadeDemo;
/**
* @author evanYang
* @version 1.0
* @date 2020/05/03 09:47
*/
public class Computer {
AliSmsService aliSmsService;
EmailSmaService emailSmaService;
WechatSmsService wechatSmsService;
public Computer(){
aliSmsService=new AliSmsServiceImpl();
emailSmaService=new EmailServiceImpl();
wechatSmsService=new WechatSmsServiceImpl();
}
public void sendMsg(){
aliSmsService.sendSms();
emailSmaService.sendSms();
wechatSmsService.sendSms();
}
public static void main(String[] args) {
Computer computer = new Computer();
computer.sendMsg();
}
}