2011-04-16 129 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