在Java Web應用程序,什麼是術語「封裝結構」和「目錄結構」的確切含義是什麼?他們不一樣嗎?我看到一些文章有這兩個術語,但我不確定確切的含義和差異。封裝結構和目錄結構
回答
軟件包是一起更改的代碼集合,一起使用並一起發貨。所以一個罐子/戰爭是一個包裝。
我明白你的意思源碼包,這更像是目錄結構。但我相信,目錄是硬盤上的物理表示。
編輯:我已經掌握了3年多的原始答案。但沒有改變,因爲它被接受。但現在改變它,以便任何新的訪問者可能會受益,也可以避免鏈接腐爛。根據下面的討論可以提取包的一些附加含義。例如,一個jar包是一個包嗎?
重複使用的類應該打包在一起,以便可以將該包視爲可供您使用的完整產品。而那些被重用的應該與那些不被重用的那些分開。例如,您的日誌工具類不一定與您的文件io類一起使用。因此打包所有記錄他們分開。但是伐木班可能會彼此相關。因此,創建一種完整的產品來記錄日誌,比如說爲了更好的名稱commons-logging將它打包在一個(重新)可用的jar中,另一個單獨的完整產品用於io實用程序, io.jar。如果你更新說commons-io庫來說支持java nio,那麼你可能不一定要對日誌庫做任何改變。所以分開它們會更好。
現在,假設您希望您的日誌記錄實用程序類支持結構化日誌記錄,以便使用splunk等工具進行某種日誌分析。日誌工具的某些客戶端可能想要更新到新版本;其他人可能不會。因此,當您發佈新版本時,請將所有需要並重新用於遷移的類打包。因此,您的實用程序類的一些客戶端可以安全地刪除舊的公共日誌記錄jar並移至commons-logging-jar。其他一些客戶仍然可以使用較舊的jar。然而,沒有客戶需要這兩個罐子(新舊罐子),只是因爲你迫使他們使用一些舊罐子的罐子。
避免循環依賴。 a取決於b; b對c;條件;但是d取決於a。這種情況顯然會阻止,因爲定義圖層或模塊等非常困難,您不能相互獨立地改變它們。另外,你可以打包你的類,如果一個圖層或模塊發生了變化,其他模塊或圖層就不一定必須改變。因此,例如,如果您決定從舊的MVC框架轉到其他API升級,那麼只有視圖和控制器可能需要更改;你的模型沒有。
在大多數Java應用程序中,包結構應該與.java和.class文件的目錄結構匹配。但是,這些目錄是更大目錄結構的一部分,包括除源和/或字節碼之外的其他數據。
根據上下文的不同,「包結構」也可能指的是交付包,每個包含應用程序或庫。
- 1. 目錄結構
- 2. virtualenv和Django目錄結構
- 3. Ant和jar目錄結構
- 4. Wicket目錄結構
- 5. Py2exe目錄結構
- 6. 從目錄結構
- 7. PHP目錄結構
- 8. 目錄結構C++
- 9. SSL目錄結構
- 10. Laravel項目目錄結構
- 11. Golang項目目錄結構
- 12. 合理化封裝結構在python
- 13. 10克封裝結構 - 限制參考
- 14. 封裝結構在eclipse中更改
- 15. 包的Laravel4目錄結構
- 16. android目錄結構如何?
- 17. 角度目錄結構
- 18. HTACCESS - 更改目錄結構
- 19. 設置目錄。結構DSSS
- 20. 開發目錄結構
- 21. 要翻轉目錄結構
- 22. Android Maven目錄結構
- 23. REST API的目錄結構
- 24. Java界面目錄結構?
- 25. Python TDD目錄結構
- 26. gcc的目錄結構
- 27. 多根目錄樹結構
- 28. Couchapp目錄結構,更新?
- 29. 僅解壓目錄結構
- 30. C++庫的目錄結構