J2EE項目中基本都是遵循分層架構的,自然包結構也是基于分層的。DAO層有DAO package。service 層有service package。在這些包下面再根據模塊劃分子包。
我覺得另一種可行的方案是根據模塊劃分包,如果包比較復雜,比如有超過十個的類,再根據層來劃分子包。一般的模塊比較簡單,無需劃分子包。
從高內聚,低偶合的原則來說,這樣劃分具有更高的內聚性。如果按層劃分。其實同層的類并入多大的關系。考慮一下DAO層。這些DAO之間有多少聯系?
新劃分方法的好處是如果需要修改某個模塊,修改的地方相對集中。因為都位于一個包內。
現在分層架構已經非常普遍,沒有必要在包的劃分上體現分層架構。在類名上體現分層架構即可。就是說分層架構無需通過包結構來體現。
新的劃分方案可能有一個問題。各個模塊之間可能有實現上的冗余。如果采用這個方案,需要在這點上采取預防措施。
當然這還是想法,沒有在項目中實踐。希望大家能指出這個方法可能帶來的問題。