2008-09-18 72 views

回答

3

沒有理由不是這樣做,如果它對你更有意義。請注意,Cocoa框架中的很多事情都是由於更高層次的設計決定而產生的,例如有利於組合和通過繼承進行委派。如果你願意,你可以設計類似於Objective-C軟件的C#軟件,但沒有Cocoa經驗的人將不得不向他們解釋它,因爲鬆散耦合的設計對他們來說似乎是「奇怪的」 。

噢,正確 - 該設計的優點包括UI視圖和模型類具有更高的可重用性(因爲它們彼此之間不會有任何知識),視圖類中稍微簡單的代碼以及更多一個地方的「應用程序邏輯」(控制器類)。

0

不是「可可版本MVC的」在ASP.NET MVC中使用的模式?到目前爲止,所有的例子都指出了通過控制器進行溝通的黑白視圖和模型,V和M之間沒有直接的交互作用。我對此有不正確的理解嗎?

+0

使用Cocoa MVC的風格,我認爲他們更 - 或 - 不太一樣(但我不是ASP.NET專家)。很多之前的「MVC」實現都鼓勵模型和視圖之間的緊密耦合,這正是Apple試圖阻止的。 – 2008-09-18 21:58:47

0

主要優勢,使用可可的「中介控制器」(NSController的子類)是它們實現的模型和視圖之間進行調解所需的標準功能的很大一部分。諸如跟蹤視圖選擇所指示的模型部分和事務支持(例如,您可以提交或放棄對視圖或模型的一組修改)都包含在內,「免費」。使用NSController子類作爲模型和視圖之間的「粘合」代碼,可以讓您作爲開發人員將您的精力集中到「協調控制器」功能上 - 駐留在控制器層中的特定於應用程序的邏輯。

那麼,值得在.Net中使用這種模式嗎?讓一個通用的協調控制器正確工作並不是微不足道的(例如,蘋果公司發佈了幾個版本來讓它正常工作)。像樹控制器一樣特別棘手。如果您只在一個或幾個項目中使用此模式,則可能不值得付出努力。另一方面,我相信社區會讚賞Cocoa的NSController層次結構中的通用控制器框架。

相關問題