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