日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

李宏毅 课程打包_按功能而不是按层打包课程

發(fā)布時間:2023/12/3 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 李宏毅 课程打包_按功能而不是按层打包课程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

李宏毅 課程打包

大多數(shù)企業(yè)Java應(yīng)用程序在設(shè)計上都有一些相似之處。 這些應(yīng)用程序的打包通常由它們使用的框架(如Spring,EJB或Hibernate等)驅(qū)動。或者,您可以按功能對打包進(jìn)行分組。 像任何其他有關(guān)建模的項目一樣,這也不是沒有任何問題。 讓我們討論一些權(quán)衡以及如何解決它們。 在本文中,我們將討論兩種方法在常見使用場景下的利弊。

逐層封裝(PBL)

這是開發(fā)人員在創(chuàng)建企業(yè)應(yīng)用程序時將其拆分為多個層(如DAO,SERVICE,VIEW等)時要做的第一件事。

當(dāng)我們在不同的層使用不同的框架時,代碼分離。 例如,如果我要使用Hibernate,Spring和JSF,那么我的所有Hibernate依賴代碼都將在DAO層中,而JSF相關(guān)的代碼將在VIEW層中。 萬一我只需要在視圖層或DAO層上遷移到新框架,這很好。

按功能打包(PBF)

逐功能包使用程序包來反映功能集。 它將與單個功能(僅該功能)相關(guān)的所有項目放置在單個目錄/程序包中。 這導(dǎo)致包裝具有高內(nèi)聚力和高模塊化性,并且包裝之間的耦合最小。 緊密協(xié)作的項目彼此相鄰放置。 它們不會散布到整個應(yīng)用程序中。 由于一類的大部分依賴項都靠近該類,因此這也增加了一致性。

比較方法

讓我在下面的維度中比較這兩種方法。

1.添加新功能。

在必須將PBL代碼添加到VIEW,SERVICE和DAO層的情況下,這可能很麻煩。 PBF通過將與同一功能相關(guān)的所有代碼分組到一個目錄中來解決此問題。

2.更改所使用的框架。

如前所述,由于所有相關(guān)代碼都保存在同一位置,因此PBL使得更改框架變得更加容易。 在這里,我們確切地知道更改的范圍及其影響。 對于PBF,我們需要深入研究所有功能集以查看與框架相關(guān)的類。 如果選擇逐模塊遷移框架模塊,則可能會認(rèn)為PBF比PBL更好。

3.代碼導(dǎo)航。

由于開發(fā)人員大多數(shù)時候需要使用這些功能,因此使用PBF進(jìn)行代碼導(dǎo)航更加容易。 當(dāng)您確切知道該做什么時,它沒有太大的優(yōu)勢。

4.保留通用代碼。

每個應(yīng)用程序都將具有一些組件,這些組件將在功能中重復(fù)使用,即,這些功能并不總是排他的。 在這種情況下,如果我們分別打包所有功能,則它們之間的交互可能會非常混亂。 作為一般原則,我們需要減少這種相互作用并增加包裝內(nèi)部的凝聚力。 我們可以通過將此類實體添加到通用包中來解決這種情況。 在包括Hibernate在內(nèi)的許多項目中都使用了這種方法。

結(jié)論

大多數(shù)應(yīng)用程序?qū)⒕哂?種類型的類。 即

  • 域?qū)ο?
  • 商業(yè)服務(wù)
  • 數(shù)據(jù)檢索邏輯
  • 數(shù)據(jù)表示邏輯
  • 如果我們使用PBF,它將為我們提供良好的結(jié)構(gòu)表示,但不會提供任何功能表示。 我們需要我們的體系結(jié)構(gòu)以類似于問題域。 因此最好使用“按功能打包”樣式。 我們可以使用MyFeatureDAO或MyFeatureService之類的命名約定在內(nèi)部對類進(jìn)行分類。 這樣我們就可以傳達(dá)課程的意圖。

    我發(fā)現(xiàn)了有關(guān)此主題的一些討論,希望對您有所幫助。

  • Java實踐文章
  • Hibernate核心實現(xiàn)的經(jīng)驗教訓(xùn)
  • 更改Java軟件包名稱如何改變我的系統(tǒng)架構(gòu)
  • 演講者:Kostis Kapelonis
  • OOD的原理Bob叔叔
  • 文章說它更好地按包使用
  • 關(guān)于SO的問題按功能打包是否良好?
  • 參考:在The Object Oriented Life博客上, 按功能而不是按層打包來自我們的JCG合作伙伴 Manu PK的類。

    翻譯自: https://www.javacodegeeks.com/2013/04/package-your-classes-by-feature-and-not-by-layers.html

    李宏毅 課程打包

    總結(jié)

    以上是生活随笔為你收集整理的李宏毅 课程打包_按功能而不是按层打包课程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。