我(現在比以往任何時候)看到開發人員編寫大量層的如:保持一切鬆耦合和可擴展:太多的圖層,太小的投資回報率?
implementation PresentationLayer ->
interface IMyDTO ->
implementation MyDTO ->
interface IMyService ->
implementation MyService ->
interface IMyDomainRepository ->
implementation MyDomainRepository ->
interface IMyDomainObject ->
implementation MyDomainObject ->
interface IMyIndependentStorageLayer ->
implementation MyMSSQLStorageLayer
通過C#的博客來看,這似乎是切片面包以來的最好的事情。基本上,一切都鬆散耦合。不要直接使用域對象。通過服務層運行所有內容。通過存儲庫訪問數據。所有圖層都完全獨立。
不要誤會我的意思,我喜歡這個主意,但是不是在時間上的權衡巨大,特別是在一個更大的項目上?維護的投資回報率是否真的足以證明這一點?
我讀到的解釋有些尷尬,比如「這樣我可以附加一個不同的數據庫,如果我需要的話」。真?我不認爲有人突然要求從MSSQL切換到Oracle是一個普遍的問題,現在你坐在那裏,希望你有一百萬個層次都不知道彼此。
在鬆散耦合的過程中有沒有趨勢,或者我只是在閱讀錯誤的博客?你如何看待這件事,並且你是否有過後來真的很高興的事情,即你一開始做了額外的工作?
大部分時間你不知道,但後來什麼都證明是可重用的?爲此,你將不得不知道一年後你會在做什麼? – Alex 2009-08-09 17:40:54
這是一個很好的觀點。當你決定使用特定的圖層結構時,儘管你會將新代碼放置在可以從頭開始重用的地方。一個服務可以被多個控制器使用,一個Reposiory方法可以被多個服務使用等等。 因此,即使您剛開始時可能很難做工和投機,也會有一些好處。 對我來說,使系統可測試通常是這些決定中的一個重要因素。我認爲,如果你可以刪除對實時數據庫和視圖渲染部分的依賴關係,其餘部分通常會很順利。 – 2009-08-09 19:49:32