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