【问题标题】:Models as pure data objects in Zend Framework and the service layerZend 框架和服务层中作为纯数据对象的模型
【发布时间】:2012-02-23 09:09:27
【问题描述】:

将 ZF 中的模型视为纯数据对象已变得很普遍,即具有一堆属性和 getter/setter 的类实例。

class Model_User {
  public $id;
  public $name;
  ...
}

我想知道的是,例如,在控制器中实例化这样一个对象并将其传递给服务层 是否有意义,或者服务层是否应该自己负责实例化这些对象...您不会直接在控制器中实例化 Zend_DbTable 类,那么在控制器中实例化 Model_User 以将其传递给服务是否有意义?

【问题讨论】:

  • 我问这个的原因是我经常发现自己将数组从控制器传递到服务层,然后直接将它们传递给模型......

标签: php model-view-controller oop zend-framework service-layer


【解决方案1】:

我认为这样做没有问题。数据传输对象 (DTO) 旨在在层和/或模块之间传递信息。在我看来,这与使用数组没有什么不同,而且肯定比使用数组更容易。

这是关于 DTO 的另一个讨论 - What is Data Transfer Object?

Martin 对 DTO 的定义 - http://martinfowler.com/eaaCatalog/dataTransferObject.html

【讨论】:

    猜你喜欢
    • 2010-09-22
    • 2010-11-15
    • 2012-08-18
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    • 2017-10-18
    相关资源
    最近更新 更多