什么是外观模式
外观模式(Facade Pattern)门面模式,隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。
这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CM5AjM5YzMjBzN2UjM3ATOyYzXyIDM0QTM3IzLcVDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
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();
}
}