2010-02-04 30 views
9

如果我有一個線程模型和控制器。模型控制器上有單數還是複數?

對模型和控制器來說應該是單數還是複數?

我可以顯示一個線程和列表線程。

不知道我應該用什麼。

$thread->get_lists(); // doesnt sound good 
$threads->show(); // doesnt sound good 

回答

14

不要緊

我個人使用單數爲控制器的模型和複數。

但是,重要的是你選擇了一個方案,並且是一致的

+0

+1和感謝包,富:) – Gordon 2010-02-04 23:03:32

+0

@Gordon參數:哈哈,謝謝你。你從哪裏聽說的? – hobodave 2010-02-04 23:05:23

+0

不記得了。無論是通過推特或偶然發現,當我在尋找一個全方位的解決方案,以縮小CSS和JS。 – Gordon 2010-02-04 23:07:44

2

KohanaPHP非常好地處理它們的單數/複數MVC組件。我會檢查它的參考,因爲它是有道理的。但是當它歸結爲它時,它並不重要,它取決於程序員。我的意思是,如果你正在得到一堆列表,請執行get_lists(),或者如果獲取列表的內容使用get_list()。

2

像其他人說的,沒關係。

關於模型,我喜歡在類表示單行時使用單數形式,例如,當使用活動記錄或表格行網關和複數時使用表示表和記錄集的類,只是因爲我可以使這些返回或包含具有單數名稱的類,我可以區分它們。但是再次,我可以將它們命名爲UserTable,UserCollection和User。使用最能代表你的域名的東西。

一些框架有一個命名模型和控制器的慣例來工作一些automagic。例如,單數模型默認情況下會使用複數表格,因此您不必親自繪製它們。這叫做convention over configuration;因爲通常你仍然可以按照你認爲合適的方式進行配置。

唯一一次我說它並不重要如何命名您的模型和控制器是當code convention正在使用。

3

這取決於模型。如果該類的對象完全代表一件事,如果它們代表許多事物,則使用單數形式,使用複數形式(但通常不需要這樣的類,使用數組/集合)。兩者都不可能發生,或者你應該重新設計(1)。

我會用你的主題例如:

如果每一個對象模型一個線程,將類命名爲「主題」。如果它一次建立幾個線程,則稱它爲「線程」(或「ThreadCollection」或類似的東西)。 (1)如果你需要同時使用兩個不同的類(線程和線程)或者爲後者創建一個數組或集合,那麼同時使用一個線程表示一個線程。然後你會清理它: $ thread-> show(); $ threads-> list();

+0

我喜歡這個,因爲在同一個類中處理列表和單個項目往往不是很面向對象。爲什麼?因爲根據我的經驗,這些類很少有任何狀態,但僅僅是一組函數。 – DanMan 2012-07-02 13:41:44

1

我知道這是一個老問題,但是最近我和我的同事就這個問題進行了長時間的辯論。

儘管我個人更喜歡奇異的控制器,並在同一時間絕對認爲單數/複數不應該的問題/執行......

大多數衆所周知的API出有使用多個用於控制器。這是一個具有很強的潛力來結束辯論

例如 Twitter API Google plus API

相關問題