gpt4 book ai didi

php - 这是域对象类吗?

转载 作者:搜寻专家 更新时间:2023-10-31 21:44:39 24 4
gpt4 key购买 nike

如果 Domain Object = Business Object,那么我期待看到像 findTaxValues(); 这样的东西。或 searchBooksByAuthor();方法,相反,我通常看到 getter 和 setter。

1)

这是域对象类吗?

class Application_Model_Guestbook
{
protected $_comment;
protected $_created;
protected $_email;
protected $_id;

public function __construct(array $options = null)
{
if (is_array($options)) {
$this->setOptions($options);
}
}

public function __set($name, $value)
{
$method = 'set' . $name;
if (('mapper' == $name) || !method_exists($this, $method)) {
throw new Exception('Invalid guestbook property');
}
$this->$method($value);
}

public function __get($name)
{
$method = 'get' . $name;
if (('mapper' == $name) || !method_exists($this, $method)) {
throw new Exception('Invalid guestbook property');
}
return $this->$method();
}

public function setOptions(array $options)
{
$methods = get_class_methods($this);
foreach ($options as $key => $value) {
$method = 'set' . ucfirst($key);
if (in_array($method, $methods)) {
$this->$method($value);
}
}
return $this;
}

public function setComment($text)
{
$this->_comment = (string) $text;
return $this;
}

public function getComment()
{
return $this->_comment;
}

public function setEmail($email)
{
$this->_email = (string) $email;
return $this;
}

public function getEmail()
{
return $this->_email;
}

public function setCreated($ts)
{
$this->_created = $ts;
return $this;
}

public function getCreated()
{
return $this->_created;
}

public function setId($id)
{
$this->_id = (int) $id;
return $this;
}

public function getId()
{
return $this->_id;
}
}

更新:

2) 因为它似乎是一个域对象类:

我很难学习 Zend 快速入门指南。

到目前为止,这是我的简历:

表数据网关对象 – 这些是我们表的对象副本,它们应该包含与表相关的通用查询。在 Zend 上,我们将使用它们来执行通用查询,这些查询将通过 Zend_Db_Table_Abstract 扩展在不同的数据库供应商之间工作。这些网关对象会做什么?它们将以通用(非数据库特定)方式(通过适配器)连接到我们的数据源(例如:MySQL 数据库);

数据映射器对象 - 这些对象将在我们的数据源和领域对象模型之间工作。他们可能会也可能不会使用网关来访问数据源。他们的工作是,在不引用特定表而是引用域(可能需要/有权访问不同表)的同时,它提供了一种更好地组织数据和相关行为的方法。在这个 Zend 示例中,我们将使用映射器在域对象和网关对象之间来回移动数据;

如果以上是正确的,那么我仍然缺少这个:

域对象(又名业务对象) – 那些对象……我没明白……它们与其他对象的关系是什么?

关于这个网关/映射器架构,我们如何正确定义域对象?

最佳答案

我相信您将业务经理或类似人员与域对象混淆了。域对象应该是业务实体,因此我将确认您的代码示例是域对象

编辑 |回答您的更新:

域对象是在某些特定业务关注点中扮演某些业务角色的实体。如果我没有理解错误的 Zend 定义,“数据映射器对象”可能是“域对象”,但并非在所有情况下都是如此。

关于php - 这是域对象类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5857581/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com