簡體   English   中英

包裝對靜態方法/變量的訪問的模式名稱是什么?

[英]What's the pattern name for wrapping access to static methods/variables?

接下來的問題是代理,裝飾器,適配器和橋接模式有何不同? ,您將如何描述我幾次需要實現的以下模式?

場景是我從第三方類引用了靜態方法或變量,但我想將其隱藏在接口后面,以便可以對其進行模擬以進行測試。

例如,在Java中,commons-lang庫具有一個SystemUtils類,該類具有常量IS_OS_WINDOWS等。我想運行獨立於底層OS並模擬各種OS的測試,因此我將對常量的訪問包裝如下:

interface ISystemUtils {
    boolean isOsWindows();
}

class SystemUtilsImpl implements ISystemUtils {
    @Override
    public boolean isOsWindows() {
        return SystemUtils.IS_OS_WINDOWS;
    }
}

這是代理服務器,是通用的“包裝器”,還是其他產品?

這稱為立面

外觀是為大型代碼(例如類庫)提供簡化接口的對象。 外牆可以:

  • 由於立面具有執行常見任務的便捷方法,因此使軟件庫更易於使用,理解和測試。
  • 出於相同的原因,使庫更具可讀性
  • 減少外部代碼對庫內部工作的依賴,因為大多數代碼使用外觀,因此在開發系統時具有更大的靈活性
  • 用一個設計良好的API來包裝設計欠佳的API集合。

盡管我確實同意(至少以我的經驗)它通常會公開許多不同的操作/類,但是Facade模式是一個很好的答案。 話雖如此,許多其他模式也可以達到相同的目的-代理可能是我的首選,但是Adapter或Mediator也很合適。 您可能還會遇到的另一個術語是“ 委托 ”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM