[英]Is database a controller or boundary in a sequence diagram?
數據庫將是控件的一部分。 但是,控件用於高級用例邏輯/協調,而數據庫是控件的低級實現。 在同一張圖上混合不同層次的抽象不一定有幫助。
實體控制邊界分解基於用例模型。
如果數據庫系統是一個參與者,那么與外部數據庫相關的對象就是一個邊界。 但這會產生誤導:數據庫系統是您系統的實現細節。 即使數據庫在多個應用程序之間共享,它也不是一個自治系統,如果沒有使用其內容的應用程序,它將沒有任何用途。 所以:不是邊界。
如果數據庫不是參與者,那么它就是您的“系統”的一個組件(系統由應用程序和數據庫組成)。 它不能是邊界(見上文)。 它也不能是實體,因為用戶不關心數據庫。 因此,它只能是一個控件。
控件更適用於用例邏輯(實現用例,並協調實體和邊界)。 所以數據庫充其量是控件的一部分(但控件原型是正確的)。
此外,一些架構模式(例如“主動記錄”)將在實體級別使用數據庫。 如果它真的是一個實體(用戶不在乎)或者它仍然是一個被驅逐的控件,那么它是模棱兩可的。 實際上,在確定之前,您需要知道要在設計中管理持久對象的方法。
我個人建議不要混合抽象級別,因為這會使圖表更難以理解並且不太有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.