論外部調用代理應該屬於那一層

今天關於這個問題我和同事進行非常激烈的討論,最後還有有點不了了之的感覺。

在回家的路上我想到了如何來決定這個問題。


在論述這一問題之前先描述一下上下文。

首先我公司普通的項目使用以下的架構。

WebSite=>WCF=>BLL=>Repository=>DAL=>DB

同層之間可以直接調用但不能調用其他同層的下一層。


各層之間的職責如下:

WebSite:頁面展現層。提供頁面管理以及繪製。

WCF:服務提供層。提供服務管理以及初始化。

BLL: 業務邏輯層,用於提供業務邏輯的實現。

Repository:業務對象倉儲層,用於提供業務對象的存取。

DAL:數據訪問層,用於提供數據對象的永久化以及讀取。

DB:數據庫,用於存放數據對象的永久化數據。


在我和同事的討論中主要是集中在外部服務調用代理也就是WSProxy到底是應該視作BLL層以提供其他BLL層調用還是視作Repository層讓其他Repository層進行調用。


BLL層主要有以下業務。

1、不會返回業務數據的業務。如:發送一封郵件,發送一條短信。

2、返回業務數據的業務。如:得到訂單列表、已發送郵件列表等。


Repository主要是以下業務。

1、爲BLL層提供業務數據。

2、將業務數據轉爲固化數據提供給DAL層 進行固化。


明確了每一層的業務,那要對WSProxy進行分層也只需要明確WSProxy層的業務就可以得到。

我們調用WSProxy層主要有以下業務。

1、得到業務數據。如:得到主站點已註冊的用戶信息。

2、使用一個業務。如:通過主站點的發送短信,郵件等。


由此 可以看到,WSProxy所提供的業務BLL層提供的業務是一致的,所以應該視作BLL層並讓其他BLL層進行調用。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章