2013-12-10 70 views
0

這是基本撲克遊戲的設置。Subviews有一個代表,糟糕的設計?

PokerViewController有一個名爲PokerTableView的子視圖。後者有一系列子視圖CardView s。

我想成爲一名優秀的程序員,並遵循基本的MVC模式。 PokerTableView有一個代表和一個數據源,PokerViewController實現。

我一堆CardView s添加到了PokerTableView,我想將它們四處移動,所以我加CardView類中的手勢識別,然後添加一個委託所以每張卡可以告訴它的母公司(PokerTableView),它的存在移動,敲擊等。

這是不好的設計?

如果CardView與代表有子視圖會怎麼樣?在祖父母,父母,子女關係中設置協議是否糟糕?

+1

目前尚不清楚你在問什麼。能否更好地解釋你的目標?謝謝。 –

+1

您是否將CardView添加爲UITableView的單元格contentView,並將您的子類UITableView創建爲PokerTableView? – sanjaymathad

+1

我要出去走走,猜測'PokerTableView'只是一個名字聽起來像'UITableView'子類的'UIView'。對?在這種情況下,當子視圖以這種方式委託給超級視圖時,沒有什麼違反MVC的一般原則。 – FluffulousChimp

回答

2

沒有什麼 - 在它的表面 - 打破了MVC的一般原則在這裏。實際上,委託模式在UIKit框架中是衆所周知的。

我認爲這裏最重要的一點是非常清楚 - 無論是在你的頭腦中還是在文檔中 - 什麼樣的對象對什麼行爲負責,並確保這些責任對於對象的概念是有意義的。例如,CardView對象應該對卡片的可視表示所做的事情負責。 PokerTableView對象應該負責撲克桌的視覺表現。也許在幕後也有模特班。