李宏毅 课程打包_按功能而不是按层打包课程
李宏毅 課程打包
大多數企業Java應用程序在設計上都有一些相似之處。 這些應用程序的打包通常由它們使用的框架(如Spring,EJB或Hibernate等)驅動?;蛘?#xff0c;您可以按功能對打包進行分組。 像任何其他有關建模的項目一樣,這也不是沒有任何問題。 讓我們討論一些權衡以及如何解決它們。 在本文中,我們將討論兩種方法在常見使用場景下的利弊。
逐層封裝(PBL)
 這是開發人員在創建企業應用程序時將其拆分為多個層(如DAO,SERVICE,VIEW等)時要做的第一件事。 
 當我們在不同的層使用不同的框架時,代碼分離。 例如,如果我要使用Hibernate,Spring和JSF,那么我的所有Hibernate依賴代碼都將在DAO層中,而JSF相關的代碼將在VIEW層中。 萬一我只需要在視圖層或DAO層上遷移到新框架,這很好。 
按功能打包(PBF)
逐功能包使用程序包來反映功能集。 它將與單個功能(僅該功能)相關的所有項目放置在單個目錄/程序包中。 這導致包裝具有高內聚力和高模塊化性,并且包裝之間的耦合最小。 緊密協作的項目彼此相鄰放置。 它們不會散布到整個應用程序中。 由于一類的大部分依賴項都靠近該類,因此這也增加了一致性。
比較方法
讓我在下面的維度中比較這兩種方法。
1.添加新功能。
在必須將PBL代碼添加到VIEW,SERVICE和DAO層的情況下,這可能很麻煩。 PBF通過將與同一功能相關的所有代碼分組到一個目錄中來解決此問題。
2.更改所使用的框架。
如前所述,由于所有相關代碼都保存在同一位置,因此PBL使得更改框架變得更加容易。 在這里,我們確切地知道更改的范圍及其影響。 對于PBF,我們需要深入研究所有功能集以查看與框架相關的類。 如果選擇逐模塊遷移框架模塊,則可能會認為PBF比PBL更好。
3.代碼導航。
由于開發人員大多數時候需要使用這些功能,因此使用PBF進行代碼導航更加容易。 當您確切知道該做什么時,它沒有太大的優勢。
4.保留通用代碼。
每個應用程序都將具有一些組件,這些組件將在功能中重復使用,即,這些功能并不總是排他的。 在這種情況下,如果我們分別打包所有功能,則它們之間的交互可能會非?;靵y。 作為一般原則,我們需要減少這種相互作用并增加包裝內部的凝聚力。 我們可以通過將此類實體添加到通用包中來解決這種情況。 在包括Hibernate在內的許多項目中都使用了這種方法。
結論
大多數應用程序將具有4種類型的類。 即
如果我們使用PBF,它將為我們提供良好的結構表示,但不會提供任何功能表示。 我們需要我們的體系結構以類似于問題域。 因此最好使用“按功能打包”樣式。 我們可以使用MyFeatureDAO或MyFeatureService之類的命名約定在內部對類進行分類。 這樣我們就可以傳達課程的意圖。
我發現了有關此主題的一些討論,希望對您有所幫助。
翻譯自: https://www.javacodegeeks.com/2013/04/package-your-classes-by-feature-and-not-by-layers.html
李宏毅 課程打包
總結
以上是生活随笔為你收集整理的李宏毅 课程打包_按功能而不是按层打包课程的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: JDBC连接备忘单
- 下一篇: 怎么辨别苹果专用耳机
