代码之家  ›  专栏  ›  技术社区  ›  Ian Suttle

业务对象与实体[已关闭]

oop
  •  10
  • Ian Suttle  · 技术社区  · 15 年前

    业务对象和实体之间有区别吗?

    如果我要定义一个POCO类型的类,比如说一个产品类,那它是一个业务对象还是一个实体?

    public class Product {
        public int ID { get; set; }
        public string Name { get; set; }
        public double Price { get; set; }
        public string Sku { get; set; }
    }
    

    注意有 此对象中的功能。

    7 回复  |  直到 10 年前
        1
  •  12
  •   DancesWithBamboo    15 年前

    我称之为DTO(数据传输对象)。我以前也见过他们被称为“财产阶级”。我不会称它为业务对象,因为它没有行为,根据定义,bo是由它们的行为定义的。

        2
  •  8
  •   moffdub    15 年前

    所有实体都是业务对象,但并非所有业务对象都是实体。

    实体是业务对象,其标识不是由属性定义的,而是由标识符(如产品的ID)定义的。

    非实体的业务对象的示例可以是颜色。颜色从它的RBG值派生出它的标识。

    当然,我指的是, Entities and Value Objects in Domain-Driven Design .

        3
  •  5
  •   Pawel Krakowiak    15 年前

    我认为它们是相同的,但是如果您的业务层中有一些类似控制器的类(在您的域模型上操作),它们可能不会被称为实体。我会说,像product这样的类既是业务对象又是实体,而productController则只是业务对象。一个实体表示一个域模型对象——一个用户、一本书、一辆车等,它也包含自己的数据。我认为这只是一个命名的问题,并不重要,我倾向于将这两个术语互换使用,但通常会使用我上面描述的“规则”。

        4
  •  1
  •   cherouvim    15 年前

    根据我的经验,实体通常与 CRUD . 业务对象也可以是非持久性对象,例如 strategies 、政策等。

        5
  •  0
  •   Mitch Wheat    15 年前

    我认为业务对象和实体之间没有明确的区别。不同的练习者似乎使用不同的版本。

    查看这些评论 Ayende .

        6
  •  0
  •   anon    15 年前

    “实体”一词通常被用作一种更自命不凡的表达“事物”的方式。考虑实体创建关系图,例如-显示事物之间关系的关系图。

    business对象只是业务域中的事物(oops、实体)。我会说您的产品是一个business实体-将其与say a string进行比较,这是实现领域中的一件事。

        7
  •  0
  •   Gray droiddeveloper    10 年前

    业务对象和实体之间有区别吗?

    维基百科定义 "business object" 与我所说的“实体”相同。 我对这个定义的困惑在于“业务”这个词,因为“业务逻辑”与实体是正交的。“实体”(DTO,“数据实体”等)是具有字段和get/set类型方法的对象。它保存数据,但包含最小(如果有)逻辑。

    “业务逻辑”或“业务规则”对象封装了使用这些实体所需的高阶逻辑。它使用实体中的字段进行决策,并根据需要修改和持久化实体。