【问题标题】:Applying OOP in small open source project在小型开源项目中应用 OOP
【发布时间】:2011-04-16 23:53:00
【问题描述】:

所以我目前对类的理解是: 一个只会被实例化一次的类的单例。 未实例化但仅存在的类的静态。 常规的?对于一个可以反复实例化的类。

所以我在做一个小型的开源项目,至于与用户打交道,我想到了如何处理它,例如: 创建一个用户——我可以实例化一个用户对象,然后在它上面调用一个方法创建。或者我可以有一个单例,所以用户对象总是存在并调用创建?

我只是认为为每个与用户相关的操作创建一个对象似乎有点草率,比如更新用户凭据,我是否要实例化另一个用户对象,然后对其调用方法更新?

只是对如何实际应用 OOP 以及最好的方法感到困惑。

感谢你们提供的任何/所有帮助。

【问题讨论】:

  • 返回该(或相关)模型/对象实例的类/静态方法称为“工厂”。

标签: php oop object


【解决方案1】:

即使它是一个小项目,我也建议您查看可用的 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
    }
}

【讨论】:

  • 至于CI,我以前用它开发过,喜欢它的快速发展。然而,这是我自己的事业,我希望事情完全是定制的。至于你的课,是的,我理解这个概念,我只是想看看这是否是最好的方法,每次我想修改一个用户时创建一个新的用户对象,或者更好的是,我将如何去做试图从数据库中获取所有用户?
  • 您可以编写一个更通用的类并在应用程序启动时启动用户对象。例如包含以下方法的类:get()get_all()update()create()delete()
猜你喜欢
  • 1970-01-01
  • 2010-12-31
  • 2010-11-16
  • 1970-01-01
  • 2010-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多