簡體   English   中英

Java接口實現類文件

[英]Java interface implementation class file

我有一個協議棧實現,其中每個層在構造函數中接收下層,以便與它們通信,如:

ApplicationLayer app = 
       new ApplicationLayer(
              new DataLinkLayer(
                     new PhysicalLayer()
));

我需要的是控制instatiated對象的類,以便通過更改文件(不是.java,類似.xml)來更改圖層類型。 在每個層之間實現記錄器層的可能用法之一,例如:

ApplicationLayer app = 
           new ApplicationLayer( 
                  new AppLogLayer( 
                        new DataLinkLayer(
                              new DataLinkLogLayer(
                                    new PhysicalLayer()
))));

有了它,我的源代碼在生產(我們不需要日志)和開發(我需要日志記錄)中保持相同,只需更改外部(到.jar)文件即可。

有沒有框架可以做到這一點? 優先使用Eclipse集成。

聽起來你想要控制庫的依賴注入/反轉。 Spring和Guice是規范的例子,雖然對於這個簡單的東西你可能只是自己旋轉。

您可以使用Google Guice庫查看依賴注入。

SLF4J你在部署時更改de log方法只更改jar。

請參閱: http//www.slf4j.org/也許可以幫助您。

如果您只是在尋找一種在開發時間內啟用日志記錄而不在生產時間中記錄日志的方法,那么您可能更願意使用日志記錄框架的日志級別工具,或者使用Java(> 1.4)中的未使用的斷言功能。 這比為不同的環境改變源代碼要清晰得多。

關於斷言的一句話:您可以通過將參數傳遞給JVM來啟用/禁用JVM中的斷言功能。 斷言代碼要么執行(如果標志打開),如果標志是,則不執行。 請參閱http://java.sun.com/developer/technicalArticles/JavaLP/assertions/

如果我沒記錯的話,推薦並在Robert Simmons“Hardcore Java”一書中描述斷言實踐。

暫無
暫無

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

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