java 门面模式_Java门面模式
一、簡介
隱藏系統的復雜性,對外提供統一的訪問入口,外部系統訪問只通過此暴露出的統一接口訪問。是一種結構型模式。封裝子系統接口的復雜性,提供統一的對外接口,能夠使子系統更加簡單的被使用。
二、結構及使用場景
如上所示,可以很簡單明了的看出,Facede就是將復雜的底層系統,封裝到一個統一的接口,更簡單的提供給外部客戶端使用。其中,涉及角色:
1、客戶端client角色:通過調用facede門面,來調用服務,完成功能
2、門面facede角色:子系統服務和客戶端的紐帶。通過特定的需求,可以封裝子系統接口,提供統一接口供客戶端使用
3、子系統角色:真正處理任務的地方。
使用場景:封裝復雜的子系統,提供統一簡單的對外服務接口
三、代碼簡例
package com.cfang.oTest;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class TestFacede {
/*
* client調用
*/
public static void main(String[] args) {
Facede facede = new Facede();
facede.open();
log.info("========");
facede.close();
}
/*
* Facede
*/
static class Facede{
private SystemA systemA;
private SystemB systemB;
public Facede(){
systemA = new SystemA();
systemB = new SystemB();
}
public void open() {
systemA.openA();
systemB.openB();
}
public void close() {
systemA.closeA();
systemB.closeB();
}
}
/*
* 子系統A
*/
static class SystemA{
public void openA(){
log.info("open a...");
}
public void closeA(){
log.info("close a...");
}
}
/*
* 子系統B
*/
static class SystemB{
public void openB(){
log.info("open b...");
}
public void closeB(){
log.info("close b...");
}
}
}
運行結果:
以上可以看出,有了facede,客戶端如果想做開啟子系統的時候,不需要知道具體的open細節,如何open,直接通過facede中提供的統一open即可完成。
三、優缺點
優點:1、解耦 - 客戶端與子系統解耦,不需要關注子系統如何實踐,只需要跟facede交互即可
2、更好的劃分系統接口:對內和對外的接口,可以做很好的區別劃分
總結
以上是生活随笔為你收集整理的java 门面模式_Java门面模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: xshell 秘钥连接_如何使用PuTT
- 下一篇: selenium java测试_java