關於 Connection 的理解
在 iOS SDK 中開發感覺和 Windows 中的 Dialog Based Application 開發比較像,都是把一些頁面元素拖動到窗口中,然後再寫相應的代碼。但是,為什麼 Windows 中就沒有建立 Connection 這個過程呢?是因為 Windows 中不需要建立嗎?明顯不是。頁面元素如果與應用之間沒有關聯,是無法完成任何有效的操作的。答案是 Windows 中的 Connection 是 Visual Studio 幫我們建立好了。既然這樣,為什麼 Xcode 就不能幫我們建立呢?我的理解是為了解藕。
在 MVC 這個模式中 M 和 VC 的解藕是比較容易的。(如果 M 僅僅指 Data Model 的話。)但是 V 和 C 的解藕是比較困難的。由於 V 需要 C 來控制,所以通常他們之間的耦合是相當緊密的。就像在 Windows 中那樣,V 和 C 基本是形影不離。而 Xcode 為了解決這個問題采用了建立 Connection 這個方法。這樣可以對同一個 V 有多個不同的 C ,在不同的情況下可以選用不同的 C 來控制這個 V 。這也避免了為了控制 C 而過多的使用繼承,就像在 Windows 中做的那樣。在許多設計都盡量避免使用繼承,我想也是為了解藕吧。
摘自 pingjiang2003的專欄