簡體   English   中英

實現除類簽名以外的接口

[英]Implement interface other than from class signature

例如,讓我說,我想在jar庫中對一些完全符合我的自定義界面定義的類進行分組。 由於我無法編輯jar內的類以實現我的接口,是否有其他方法可以像使用它們來實現我的接口一樣使用這些類?

示例:我有不可編輯的類AB 我在另一個類中有一個靜態方法,該方法接受屬於接口I對象。 如何在不使方法接受所有Object對象的情況下傳遞AB對象。 我想給AB一個只有他們才能擁有的新功能。

使用Adapter設計模式https://en.wikipedia.org/wiki/Adapter_pattern 從庫中為類創建包裝器,使包裝器實現您的接口,使包裝器使用該類的方法。

從您的編輯中並根據我的評論:創建一個將實現您的接口I並用作類A和B的包裝的類。這是Facade Design Pattern 這是代碼中一個非常基本的簡單示例:

public interface I {
    void methodFromExternalAClass();
    void methodFromExternalBClass();
}

public class MyClass implements I {
    @Override
    public void methodFromExternalAClass() {
         new A().someMethod();
    }
    @Override
    public void methodFromExternalBClass() {
         new B().someMethod();
    }
}

如果要確定給定的類是否在類的分組中(類似於使用標記接口),則可以保留“ Class對象的列表,然后引用該列表以查看特定的類是否在類的分組中。 如果這不是您想要的,請澄清。 我想發表評論以澄清問題,但我沒有聲譽。

暫無
暫無

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

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