更新時(shí)間:2023-11-03 來源:黑馬程序員 瀏覽量:
所謂分模塊設(shè)計(jì),顧名思義指的就是我們?cè)谠O(shè)計(jì)一個(gè) Java 項(xiàng)目的時(shí)候,將一個(gè) Java 項(xiàng)目拆分成多個(gè)模塊進(jìn)行開發(fā)。
如果項(xiàng)目不分模塊,也就意味著所有的業(yè)務(wù)代碼是不是都寫在這一個(gè) Java 項(xiàng)目當(dāng)中。隨著這個(gè)項(xiàng)目的業(yè)務(wù)擴(kuò)張,項(xiàng)目當(dāng)中的業(yè)務(wù)功能可能會(huì)越來越多。
假如我們開發(fā)的是一個(gè)大型的電商項(xiàng)目,里面可能就包括了商品模塊的功能、搜索模塊的功能、購(gòu)物車模塊、訂單模塊、用戶中心等等。這些所有的業(yè)務(wù)代碼我們都在一個(gè) Java 項(xiàng)目當(dāng)中編寫。
此時(shí)大家可以試想一下,假如我們開發(fā)的是一個(gè)大型的電商網(wǎng)站,這個(gè)項(xiàng)目組至少幾十號(hào)甚至幾百號(hào)開發(fā)人員,這些開發(fā)人員全部操作這一個(gè) Java 項(xiàng)目。此時(shí)大家就會(huì)發(fā)現(xiàn)我們項(xiàng)目管理和維護(hù)起來將會(huì)非常的困難。而且大家再來看,假如在我們的項(xiàng)目當(dāng)中,我們自己定義了一些通用的工具類以及通用的組件,而公司還有其他的項(xiàng)目組,其他項(xiàng)目組也想使用我們所封裝的這些組件和工具類,其實(shí)是非常不方便的。因?yàn)? Java 項(xiàng)目當(dāng)中包含了當(dāng)前項(xiàng)目的所有業(yè)務(wù)代碼,所以就造成了這里面所封裝的一些組件會(huì)難以復(fù)用。
總結(jié)起來,主要兩點(diǎn)問題:不方便項(xiàng)目的維護(hù)和管理、項(xiàng)目中的通用組件難以復(fù)用。
分模塊設(shè)計(jì)在進(jìn)行項(xiàng)目設(shè)計(jì)階段,就可以將一個(gè)大的項(xiàng)目拆分成若干個(gè)模塊,每一個(gè)模塊都是獨(dú)立的。
比如我們可以將商品的相關(guān)功能放在商品模塊當(dāng)中,搜索的相關(guān)業(yè)務(wù)功能我都封裝在搜索模塊當(dāng)中,還有像購(gòu)物車模塊、訂單模塊。而為了組件的復(fù)用,我們也可以將項(xiàng)目當(dāng)中的實(shí)體類、工具類以及我們定義的通用的組件都單獨(dú)的抽取到一個(gè)模塊當(dāng)中。
如果當(dāng)前這個(gè)模塊,比如訂單模塊需要用到這些實(shí)體類以及工具類或者這些通用組件,此時(shí)直接在訂單模塊當(dāng)中引入工具類的坐標(biāo)就可以了。這樣我們就將一個(gè)項(xiàng)目拆分成了若干個(gè)模塊兒,這就是分模塊兒設(shè)計(jì)。分模塊兒設(shè)計(jì)之后,大家再來看。我們?cè)谶M(jìn)行項(xiàng)目管理的時(shí)候,我就可以幾個(gè)人一組,幾個(gè)人來負(fù)責(zé)訂單模塊兒,另外幾個(gè)人來負(fù)責(zé)購(gòu)物車模塊兒,這樣更加便于項(xiàng)目的管理以及項(xiàng)目的后期維護(hù)。
而且分模塊設(shè)計(jì)之后,如果我們需要用到另外一個(gè)模塊的功能,我們直接依賴模塊就可以了。比如商品模塊、搜索模塊、購(gòu)物車訂單模塊都需要依賴于通用組件當(dāng)中封裝的一些工具類,我只需要引入通用組件的坐標(biāo)就可以了。
分模塊設(shè)計(jì)就是將項(xiàng)目按照功能/結(jié)構(gòu)拆分成若干個(gè)子模塊,方便項(xiàng)目的管理維護(hù)、拓展,也方便模塊鍵的相互調(diào)用、資源共享。