2010-04-13 144 views
49

應用層和業務邏輯層有什麼區別?我瞭解業務層提供業務特定服務和應用層耦合業務服務,併爲最終用戶(Web服務,UI等)提供服務。我對嗎?應用層和業務邏輯層之間有什麼區別?

+0

[商業和應用程序邏輯?]的可能的重複(http://stackoverflow.com/questions/1456425/business-and-application-logic) – nawfal 2015-01-12 11:10:34

回答

60

這聽起來正確。

業務層實現域模型邊界技術中立方式。換句話說,它不依賴於任何特定的UI或與服務接口相關的技術,例如Web庫或窗口API。您應該能夠使用任何類型的應用程序(Web,富客戶端,Web服務等)的業務層。

應用程序層彌合了業務層和邊界技術之間的差距。

+6

在這種情況下,「邊界技術」意味着什麼? – pseudocoder 2013-01-03 06:27:37

+6

任何位於應用程序邊界的技術。 UI框架,數據庫訪問庫,服務網關,HTTP或SOAP框架,文件系統庫,特定消息隊列庫等。 – 2013-01-03 08:47:44

+1

如果您遵循DDD,還有可以是html,wpf,rest api等的表示層。應用程序層被不同的表示層重用。總線/域和應用程序之間的區別在於,該域只包含業務已知的對象(或可用於開發的抽象),並且由總線人員和開發人員(無處不在的語言)共享的Coomon語言命名。應用程序層是什麼讓它成爲「程序」 – buckley 2013-01-03 19:54:57

2

據我所知,業務層負責業務決策和涉及客戶端協議的邏輯。

應用程序層是與業務決策無關的原始進程。

18

總結:

  • 應用層由那些特定於本申請中的元素。這將包含UI,UI的後端處理以及應用程序和業務邏輯層之間的任何綁定。在完美的世界中,這個層不包含任何業務領域的邏輯。

  • 業務邏輯層(BLL)包含特定於業務域的邏輯。另外,如果你要創建一個單獨的BLL,這個層應該包含其他應用程序可以使用的邏輯以及這個邏輯。例如,一組暴露定義良好的API的Web服務。這將BLL與您的應用程序分開,並允許您在將來構建其他應用程序的靈活性。

+0

你能提供一個源代碼嗎?你的第一顆子彈聽起來像我通常所說的表現層。 – 2010-04-13 15:31:18

+0

不幸的是,沒有。我將他的評論意味着他的代碼層面專用於應用程序,而不是特定於業務的BLL層。但是你是對的,通常在OSI模型的上下文中使用'Application Layer'。 – 2010-04-13 16:18:10

+1

我完全同意賈斯汀。應用程序層應該只包含最少的邏輯(IE:字段是否有空格或多少個字符)。業務邏輯只能在數據本身上運行和驗證。這就是爲什麼我看不到應用層中的嵌入式SQL,業務邏輯中沒有人可以重用它! – Vippy 2014-02-21 17:25:04

0

我認爲它是基礎設施。根據不同的應用程序,它可以包含配置,報告,用戶界面外殼等

1

在業務層經典的分層管道,我們有:

- 業務規則 - 安全 - 用戶登錄電子活動 - 交易管理...

功能Requierment +非功能性Requierment =商業行爲準則

在DDD功能Requierment像業務規則和業務邏輯

留在應用層和域層及 非功能性Requiement如安全和用戶活動登錄電子逗留