2011-04-16 111 views
3

應用OOP所以我目前的理解類有: 辛格爾頓爲將永遠只能被實例化一次的類。 對於沒有實例化但只存在的類的靜態。 定期?對於一個可以反覆實例化的類。小開源項目

因此,我正在做一個小型的開源項目,至於處理用戶問題,我想我該如何處理它,例如: 創建用戶 - 我可以實例化一個用戶對象,然後調用一個方法創造它。或者我可以有一個單身人士,所以用戶對象始終存在,並調用創建?

我只是覺得似乎有點草率創建爲每個用戶相關的操作的對象,如更新用戶的憑據,我希望實例化另一個用戶對象,然後調用它的方法更新?

只是困惑如何實際應用OOP,而要做到最好的方式。

感謝任何/所有幫助你們可以提供。

+0

類/靜態返回的該實例的方法(或相關)模型/對象被稱爲「工廠」。 – coreyward 2011-04-16 23:55:43

回答

2

即使它是一個小項目,我建議你看可用的PHP框架。 CodeIgniter留下一個小腳印並且擁抱快速部署。

對於這種情況,如果我們離開了框架的可能的使用我有一個User類去,將是這個樣子:

class User{ 
    private $user = array(); 

    public function __construct($user_id = 0){ 
     if($user_id !== 0){ 
      $this->user = $this->get($user_id); 
     } 
    } 

    public function get($user_id){ 
     // .. code 
    } 

    public function update($data, $user_id = 0){ 
     if($user_id == 0){ 
      $user_id = $this->user['user_id']; 
     } 

     // .. code 
    } 

    public function create($data){ 
     // .. code 
    } 

    public function delete($user_id){ 
     // .. code 
    } 
} 
+1

至於CI,我之前就開發過它,並且喜歡它的快速發展。然而,這是我自己的事情,我希望事情完全自定義。 至於你的課,是的,我理解這個概念,我只是在尋找,如果這是做到這一點的最好辦法,每次我想修改用戶,或者更好的時間來創建一個新的用戶對象,我將如何去它試圖從數據庫中獲取所有用戶? – user652650 2011-04-17 00:01:47

+1

您可以編寫更通用的類,並在應用程序啓動時啓動用戶對象。例如,一個包含get(),get_all(),update(),create()和delete()方法的類。 – 2011-04-17 00:12:14