閱讀748 返回首頁    go 汽車大全


java package的設計原則

典型的J2EE項目,package的設計有成熟的套路可循,如分為domain、dao、service、action等等,職責已經分解的比較單一和清晰,循環依賴這樣的情況出現並不多。而在一般的java項目,如服務器程序、客戶端程序和通用性框架的開發中,包的設計並沒有套路可循,畢竟由於應用和業務種類的不同,想得出通用性的設計套路是不大可能的。這時候遵循一些原則比之生搬硬套更為重要。在《敏捷軟件開發》一書中對包的設計有深入的討論,雖然針對的是發布的二進製包而言,但是對於java package的設計同樣有借鑒意義,如對包的內聚性、可重用性、穩定性的強調,對於依賴的探討,這些都是比較籠統的概念,不是那麼直觀,需要在實際運用中認真歸納和重構,向這些原則靠攏。
   我所想到一個比較直觀的方法就是:對於一個包的描述,你是否能用一句簡明扼要的話概括,也就是包的功能或者說介紹能否做到簡明扼要,這是衡量一個包的設計是否合理的最簡單的方法。如果可以,顯然這個包的內聚性很好,所有的類都服務於一個目的,從而帶來了重用的可能(其實我對重用性並不感冒,除了工具類外真正能重用的東西少之又少,內聚性才是需要關注的);反之,這個包可能承擔了太多的職責或者依賴過多,仔細的重構和分離是需要做的。包的設計同樣要遵循接口分離的原則,將接口與實現隔離在不同的包之中,客戶程序就不會知道具體的實現,並且也保證了實現對接口的單向依賴。當然,這時就需要引入工廠類、插件或者IOC容器來負責實例化實現類。

文章轉自莊周夢蝶  ,原文發布時間 2008-09-06

最後更新:2017-05-17 18:31:33

  上一篇:go  如何快速在阿裏雲上構建自己的機器學習應用
  下一篇:go  從HDFS看分布式文件係統的設計需求