PHP - 当我不需要它时,我应该在DAO类中创建一个人工继承吗?

时间:2011-12-09 05:01:40

标签: php oop inheritance pdo

所有

使用PHP构建一个小型Web应用程序。我的编程经验不多。

在我的应用中,我创建了一个访问数据库记录的类,我称之为DAO_DBrecords。该类包括创建新记录,更新现有记录等的基本功能。目前,该类满足我所有数据库表的所有DAO需求。在函数中,我作为参数之一传递一个表示数据库表(usersarticles等)的字符串。

此时我可以做以下三件事之一:

  1. 在我的程序中使用此类,无论我正在处理什么类型的记录(即表)。
  2. 为每种类型的记录(例如DAO_Users)创建特定的类,这些类继承自DAO_DBrecords但其他方式为空。
  3. 为每种类型的记录创建特定的类(例如DAO_Users),它继承自DAO_DBrecords并指定类可以通过变量访问的数据库表(例如private $table = 'users') 。在父类中,变量将为null或空字符串。
  4. 同样,在这一点上,我并没有想到需要特定于表的功能(但可能会改变)。

    哪些(如果有的话)是正确的方法?

    谢谢,

    JDelage

    编辑:我编辑了之前读过的选项3:
    3.为每种类型的记录(例如DAO_Users)创建特定的类,这些类继承自DAO_DBrecords并指定类可以通过常量(例如const TABLE = 'users')访问的DB表。在父类中,常量将为null或空字符串。

1 个答案:

答案 0 :(得分:1)

我会选择第3个选项。在DAO_Users中,您最终可以在用户记录本身上放置方法来执行特定的操作(例如,创建并存储盐渍密码,发送验证电子邮件,从数据库中获取所有用户的朋友DAO_Users集合,获取所有用户的评论等。)

通过这种方式,您既可以使用DAO模式,也可以按行动目标在类中组织所有应用程序“操作”。