web服務程式設計探索(1) 俄羅斯套娃模型

2021-08-02 16:55:29 字數 713 閱讀 3412

「service/logic/dao/db」是一種非常常見的分層架構,從**層次上看,同一層次**可以放在同乙個package,或以…logic, …dao等類名來區分;在程式實現處理過程中,都嚴格遵循上層呼叫下層函式的方式進行,不會出現跨層、反向呼叫,一直呼叫到最底層。

在使用過程中,感覺到這種模型的好處就是比較簡單,對於每乙個請求,都是一層一層**往下寫,如果下層**可復用,就直接呼叫,如果不能復用,則新增介面。

層次之間耦合性強

***

這種俄羅斯套娃模型,最裡層是帶***的資料庫操作或網路讀寫操作,這中***從裡到外汙染了整個程式。因為邏輯處理過程中的一些資料**於資料庫檔案、網路資料、隨機值等,而這些資料**很可能被別人修改,使得處理過程不能被穩定測試。

另外,如果在邏輯處理**中,存在沒有返回值的寫操作,這些***的操作,相當於給邏輯處理**暗藏下一顆「雷」,這顆雷暗藏的效果是不會體現在邏輯處理函式返回值中的,而一旦**,則會炸毀整個處理邏輯。

測試複雜

要想測試這種帶***的邏輯,一種方式是為測試用例提供乙個真實穩定的資料**(如穩定的資料庫,遠端網路服務);另一種方法是使用mock的方法來指定***的結果;這些都是***帶來的額外工作。

俄羅斯套娃信封

給一定數量的信封,帶有整數對 w,h 分別代表信封寬度和高度。乙個信封的寬高均大於另乙個信封時可以放下另乙個信封。求最大的信封巢狀層數。樣例 1 輸入 5,4 6,4 6,7 2,3 輸出 3 解釋 最大的信封巢狀層數是 3 2,3 5,4 6,7 樣例 2 輸入 4,5 4,6 6,7 2,3 1...

俄羅斯套娃問題

給定一些標記了寬度和高度的信封,寬度和高度以整數對形式 w,h 出現。當另乙個信封的寬度和高度都比這個信封大的時候,這個信封就可以放進另乙個信封裡,如同俄羅斯套娃一樣。請計算最多能有多少個信封能組成一組 俄羅斯套娃 信封 即可以把乙個信封放到另乙個信封裡面 說明 不允許旋轉信封。示例 輸入 enve...

俄羅斯套娃信封問題

給定一些標記了寬度和高度的信封,寬度和高度以整數對形式 w,h 出現。當另乙個信封的寬度和高度都比這個信封大的時候,這個信封就可以放進另乙個信封裡,如同俄羅斯套娃一樣。請計算最多能有多少個信封能組成一組 俄羅斯套娃 信封 即可以把乙個信封放到另乙個信封裡面 說明 不允許旋轉信封。示例 輸入 enve...