2010-04-09 66 views
2

所以我想遵循mvc約定,但並沒有真正掌握它。瞭解mvc:庫類和模型類之間的差別

我有問題了解模型和庫類之間的顯式差異以及它們如何相互關聯。

例如。我想創建類來添加/編輯聯繫人,並將其添加到組。

我認爲它應該分爲2類:聯繫人和組。

第一類將創建一個聯繫人。另一個將聯繫人添加到一個組。我認爲這種分裂是完美的,因爲他們的邏輯是彼此孤立的。如果組存在或不存在,聯繫人不關心。 Group不關心Contact的外觀。

所以聯繫方式將具有以下方法:

$Contact->add($name, $email, $address, $phone) // create an entry in database 
$Contact->delete($id) // delete the entry in database 
$Contact->edit($id, $name, $email, $address, $phone) // edit the entry in database 

和組:

$Group->createGroup($name) // create a group in database 
$Group->delete($id) // delete a group in database 
$Group->addContact($groupId, $contactId) // add a contact to a group in database 

所以這些類顯然與數據庫。這是否意味着這些是模型?還是他們的圖書館類,例如。應該放在CodeIgniter的SYSTEM/LIBRARIES中。如果是後者,那麼在這種情況下,模型如何看起來像使用類?

在這種情況下控制器會如何?

如果有人能給我一個大圖片,會是偉大的!謝謝!

回答

5

MVC 模式沒有庫的概念。你所指的是MVC 框架的一般使用模式。這是一個模型文件夾,其中包含通常從泛型,可重用和獨立於應用程序的獨立庫類派生的特定於應用程序的類。

+0

是的,也許我不清楚這一點。我知道mvc與庫類無關,所以我想知道這兩個類是我應該在模型中使用的MODELS還是LIBRARY類。因爲我知道那些2可以用於其他應用程序,這使得它們更像獨立的庫類?所以我應該創建一個模型類,我使用這兩個庫類? – 2010-04-09 12:26:43

+0

@ajsie由於所提到的類在這個特定的應用程序之外做了沒有任何意義的事情,它們是我書中的模型。你已經爲這個應用程序編寫了它們。它們不是抽象的,而是具體的用例的具體類。 – Gordon 2010-04-09 12:27:59

+0

@gordon,閱讀我更新的第一條評論。嗯,我認爲他們可以用於其他應用程序來創建一個地址簿? – 2010-04-09 12:30:14

2

一般模型就像對象,它們與數據庫交互,具有變量和功能,並且可重用。

庫通常是一組輔助函數來處理數據/執行操作。

+0

但圖書館往往是類也太對了? – 2010-04-11 19:10:59