我已经在几个 Web 应用程序中实现了我认为是 MVC 的一个相当不错的表示,但是自从加入了crackoverflow,我发现我最初的定义可能有点简单,因此我真的很想澄清一下两者之间的差异数据访问层和 Web 应用程序的模型或领域层。
对于上下文,我目前使用的数据访问对象为该对象表示的表中的单个记录实现 CRUD 函数,以及返回一个对象的 get() 函数,该对象允许我遍历所有满足get() 函数的标准。
这些数据访问对象直接从包含我的业务逻辑的控制器脚本中引用。
如果重要的话,我正在使用 PHP 和 MySQL,但对可能用其他语言编码的建议感兴趣。
更新:举一个更具体的例子,我有一个名为 user 的表(这里的约定是单数表名),其中包含电子邮件地址、活动状态、用户名、密码、他们所属的公司等信息。这个基本对象将在代码中看起来像这样:
class User implements DataAccessObject
{
protected $user_id;
protected $email;
protected $username;
protected $password;
protected $company_id;
protected $active // Bool that holds either a 0 or 1
public function __construct ( $user_id ) // Uses Primary Key to know which record to construct
{
$sql = //Sql to get this information from the database.
// Code necessary to assign member variables their values from the query.
}
public function insert(){}
public function update(){}
public function delete(){}
public static function get($filters, $orderVals, $limit){}
// An object such as user might also contain the following function definition
public static function login($username, $password){}
}
听起来我可能已经将 DAO 层和模型层混为一谈了,它结合了任何现实世界类型的功能(例如用户登录)和数据访问功能。