上層建築和下層建築

2021-04-23 12:01:06 字數 1146 閱讀 2036

現在的開發架構一般都是三層或四層架構,較下的層總是提供介面或方法給上層呼叫,這時就遇到乙個問題了:呼叫下層介面或方法的時候,傳入的引數需要怎樣驗證正確性呢?如果兩個層次之間是屬於同乙個專案或是同乙個公司的專案的話可能還可以檢視一下源**,看一下下層的實現方法是否有驗證引數的正確性,但如果是使用其它的類庫,我們無法看到源**的時候咋辦?甚至有時候在同乙個公司,同乙個專案中,下層介面方法的編寫者也不知道該不該在每個方法裡驗證引數是否正確,是否不為

null

(這個最常見了)。

這個時候,大家都應該遵守一種業務的約定,很多問題便能迎刃而解了。下面舉兩個小例子:

action

service

page listdata()

在上圖中

,action

呼叫service

中的乙個返回型別為

page

的listdata

的方法,

然後再作小許的加工就可以將

page

中的資料放到頁面中顯示了。在這種場景下,頁面對

page

中有沒有資料其實是不關心的,

action

並不會檢驗(也沒有必要)

page

裡是否有資料,只要

page

裡的資料不為

null

就可以了(要清楚沒有資料跟

null

的區別),因此,

service

的listdata

介面返回的

page

一定不能為

null

。如果上圖中的

listdata

方法改為返回型別為

mapuser

的getuser方法,

則又有另一種說法了。

getuser

方法的使用場景大部份是必須要查出真實資料的物件的,當

action

傳入的引數在

service

裡查不到資料的話,

service

絕不能返回乙個不帶任何資料的

mapuser

物件,而是返回

null

就可以了,讓

action

自己作判斷,然後做應該做的事。

建築和軟體中模式之異同

csdn的透明特別推崇 建築的永恆之道 認為從中探尋到軟體的永恆之道,並就 設計模式 寫了專門文章 探 尋軟體的永恆之道 其中很多觀點我看了很受啟發,以前我也將 設計模式 看成乙個簡單的解決方案,沒有從一種高度來看待 設計模式 在軟體中地位,下面是我自己的一些想法 建築和軟體某些地方是可以來比喻的 ...

建築和軟體中模式之異同

csdn的透明特別推崇 建築的永恆之道 認為從中探尋到軟體的永恆之道,並就 設計模式 寫了專門文章 探尋軟體的永恆之道 其中很多觀點我看了很受啟發,以前我也將 設計模式 看成乙個簡單的解決方案,沒有從一種高度來看待 設計模式 在軟體中地位,下面是我自己的一些想法 建築和軟體某些地方是可以來比喻的 特...

建築和軟體中模式之異同

csdn的透明特別推崇 建築的永恆之道 認為從中探尋到軟體的永恆之道,並就 設計模式 寫了專門文章 探尋軟體的永恆之道 其中很多觀點我看了很受啟發,以前我也將 設計模式 看成乙個簡單的解決方案,沒有從一種高度來看待 設計模式 在軟體中地位,下面是我自己的一些想法 建築和軟體某些地方是可以來比喻的 特...