日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

关于Java包

發布時間:2023/12/3 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于Java包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我希望我們都同意,方法和類應該很小,并且只有很少的依賴關系。 這種觀點被廣泛接受,而對“小”的解釋則各不相同。 關于這一點有很多文獻。 但是包裹呢?

有些人將包視為名稱空間。 因此,包只是允許您為類重用名稱的東西!

幾年前,我對方法進行了思考:只是用于可重用代碼的容器。

今天,我不同意這兩種說法。 方法是命名事物,將事物與其余事物分開的非常重要的工具,即使僅被調用一次也是如此。

同樣,即使我們忽略名稱問題,軟件包也起著重要的作用。 軟件包將某些功能捆綁在一起。 他們為該功能命名,應該對其進行封裝,以便我們重新使用它。 就像方法一樣,程序包應具有單一目的。 它可能比方法的目的“更大”,但是它仍然應該只做與該目的直接相關的事情。

不幸的是,在許多項目中,這不能很好地解決。

這是一個挑戰。 從當前項目中隨機選擇一個軟件包。 對于此軟件包,請回答以下問題

  • 該軟件包的目的是什么? 請使用一個簡單的句子。 這句話與包裹名稱相符嗎?
  • 遍歷該程序包的類,它們是否都共同努力以達到該類的目的? 還是那里偶然偶然地出現了課程?
  • 遍歷系統的所有其他類。 他們都不關心您包裹的單一用途嗎? 還是有一些類浮在其他地方,而這些地方確實應該放在您正在查看的包中?
  • 如果您在下一個項目中的同事需要基本相同的軟件包,那么從您的代碼庫中提取該軟件包并將其構建為獨立的jar將有多困難?

以我的經驗,上述問題的答案很可能令人沮喪。 他們肯定參與了我合作過的大多數項目。

即使該項目中的類和方法相當合理。

這是為什么?

我認為原因是程序包的問題不如方法或類明顯。 如果某個方法跨越整個監視器,則您將始終看到使用該方法的所有時間。 而且由于該方法很長,因此可能需要做很多工作。 類相同。 但是跟套餐不同。 我花了整整一整天的時間在編碼中,而不看包裝里面的東西。 我使用快捷方式和基于名稱的搜索打開類,而無需查看包內部。

因此,您不會注意到與完全不同的問題相關的類放在一個包中。 您不會注意到包中的類數超過了任何合理的閾值。

如果涉及到最后一個問題,關于依賴關系的問題將變得非常丑陋。 軟件包還依賴其他哪些軟件包? 哪個類包含該依賴項? 對于此類問題的工具支持非常有限。 而且問題只會在項目后期才問到,也許是當產生了一個姊妹項目時,該項目應該重用一些代碼庫,因此應該在一個通用的基礎項目中移動。

由于我去過幾次,所以建議在項目開始時使用JDepend或Dependency Finder進行一些測試:

  • 包之間沒有循環依賴
  • 每個包的最大類數
  • 固定的命名架構,例如<domain>。<project>。<module>。<layer>。<package-of-package-name>
  • 模塊之間的依賴關系的固定方向(模塊是垂直切片,通常基于某些域概念)
  • 層之間的依賴關系的固定方向(gui,表示,域,持久性是典型示例)

但請注意:這些測試往往很難保持滿意。 但是,如果您付出額外的努力來保持程序包的清潔,則會對您的應用程序結構產生重大的積極影響。

參考: 關于 Schauderhaft博客上JCG合作伙伴 Jens Schauder的軟件包 。


翻譯自: https://www.javacodegeeks.com/2012/05/about-java-packages.html

總結

以上是生活随笔為你收集整理的关于Java包的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。