J2EE項(xiàng)目中基本都是遵循分層架構(gòu)的,自然包結(jié)構(gòu)也是基于分層的。DAO層有DAO package。service 層有service package。在這些包下面再根據(jù)模塊劃分子包。
我覺得另一種可行的方案是根據(jù)模塊劃分包,如果包比較復(fù)雜,比如有超過十個(gè)的類,再根據(jù)層來劃分子包。一般的模塊比較簡單,無需劃分子包。
從高內(nèi)聚,低偶合的原則來說,這樣劃分具有更高的內(nèi)聚性。如果按層劃分。其實(shí)同層的類并入多大的關(guān)系??紤]一下DAO層。這些DAO之間有多少聯(lián)系?
新劃分方法的好處是如果需要修改某個(gè)模塊,修改的地方相對集中。因?yàn)槎嘉挥谝粋€(gè)包內(nèi)。
現(xiàn)在分層架構(gòu)已經(jīng)非常普遍,沒有必要在包的劃分上體現(xiàn)分層架構(gòu)。在類名上體現(xiàn)分層架構(gòu)即可。就是說分層架構(gòu)無需通過包結(jié)構(gòu)來體現(xiàn)。
新的劃分方案可能有一個(gè)問題。各個(gè)模塊之間可能有實(shí)現(xiàn)上的冗余。如果采用這個(gè)方案,需要在這點(diǎn)上采取預(yù)防措施。
當(dāng)然這還是想法,沒有在項(xiàng)目中實(shí)踐。希望大家能指出這個(gè)方法可能帶來的問題。