PHP中的数据传输对象,许多具有相同上下文名称的类

那么我只知道有这个DTO模式。 我想知道它们是否有用。

我的意思是,我是否应该将所有域对象映射到其相应的DTO对象,并将它们分配给域对象本身来查看? 那么,我会有很多具有相同语境名称的课程。

喜欢:

  • 用户(域对象),
  • UserDTO,
  • UserMapper或UserPersistenceFactory,
  • UserFactory,
  • UserSelectionFactory,
  • UserUpdateFactory,
  • UserAssembler(用于DTO映射),
  • UserCollection,
  • UserViewHelper(也许)
  • 等等...


    通常,DTO可以帮助您将数据库的数据关注与使用数据的对象的数据关注区分开来。 您可以在DTO中进行验证,以确保特定成员遵循特定格式。 通过这种方式,额外的代码不会混淆不关心数据库需要什么的对象。

    此外,DTO在间接与数据库交谈时变得强大。 但是,这对于自动生成DTO的语言来说更重要。

    这是DTO中最强大和最引人注目的方面。 它可以轻松自动生成。 这在PHP中也是如此,但它需要额外的工具。

    我明白了为什么你可能想在PHP中使用它们,但是,我必须承认我自己还没有看到这样做的理由。 通常,Factory + Object足以满足大多数应用程序的需求。

    然而

    在具有不直接镜像数据库的对象的应用程序中,DTO会再次被授权。 例如:具有由地址和个人信息和信用卡等大量元信息组成的人员的应用程序可以使用DTO来处理所有单个数据,然后使用Person对象处理该数据的所有用法。 通过这种方式,交易可以直接通过信用卡DTO,没有麻烦,也没有大惊小怪。 然后它可以从卡上访问它需要的任何数据。 但是,只要您想在该信用卡DTO上放置地址,就不再有严格的DTO。

    链接地址: http://www.djcxy.com/p/4045.html

    上一篇: Data Transfer Objects in PHP, lots of classes with the same contextual name

    下一篇: Quartz Scheduler in Web application