【问题标题】:What defines a Business Object什么定义了业务对象
【发布时间】:2011-01-22 16:09:06
【问题描述】:

从标题来看,我认为这是一个直截了当的问题,但纵观“业务对象的世界”,我似乎无法确定业务对象应该是什么。是否有任何我应该遵循的最佳实践,甚至任何设计模式?

我找到了一本书,“Expert C# Business Objects”,这是我更好地理解的最佳起点吗?

【问题讨论】:

  • 这里的错误是“业务对象”一词的语法不佳和英语中的名词和动词在书面上无法区分造成的先天混淆的组合。正确说出的“宾语”应该是“object”(动词形式),并且主语/动词一致的规则规定“business”应该是“businesses”。因此,该术语实际上应该是“业务对象”,您会在诸如“业务对象到正确的编程实践”之类的标题中看到它。或者我在编造东西。由你决定。

标签: design-patterns business-objects


【解决方案1】:

业务对象是指与其所代表的实体相关联的业务行为或数据。

在应用程序中,您拥有执行应用程序应该执行的操作(业务内容)的代码,以及在技术上允许该应用程序运行并与用户交互的代码。例如,在 MVC 模式中,业务内容将是模型的工作。

我认为this 解释得更好。您还可以查看 MVC 模式并了解每一层的职责。一旦你理解了这一点,就会更容易看出什么是“业务对象”。

【讨论】:

【解决方案2】:

也许一个具体的例子可能会有所帮助。假设您正在编写一个菜单规划应用程序。您在此处的业务对象将是诸如菜单、成分、用户帐户、发票之类的东西——这些对象封装了您的业务模型的逻辑。

不属于业务对象的事物包括诸如 MenuForm、数据库、事务之类的事物。

【讨论】:

    【解决方案3】:

    业务对象是您的域模型的元素部分。

    什么是领域模型?领域模型从真实世界的角度描述了您的系统所做的事情。领域模型描述了元素之间的逻辑关系以及它们之间的约束。

    业务对象业务实体,或简称为实体,在某种程度上是可交换的术语。这里指的是软件解决方案将在现实世界中代表什么,可以是clientaccountdocuments 等。这可以是您的解决方案应该解决的任何问题。

    这排除了纯技术对象,这些对象仅用于解决实施问题。

    我们使用术语实体,因为这些元素存在于软件之外(它们确实存在)。换句话说,软件就是这些元素的代表。

    见:

    【讨论】:

    【解决方案4】:

    业务对象是表示业务实体的对象,并且可以选择包含业务逻辑。

    【讨论】:

      【解决方案5】:

      我仍然没有 100% 了解业务对象 (BO) 与数据传输对象 (DTO) 的区别。

      在我看来,DTO 只包含数据,而 BO 包含数据处理数据的代码?!?

      所以一个BO可以“包含”多个DTO的数据,对吧?

      【讨论】:

        猜你喜欢
        • 2011-03-17
        • 1970-01-01
        • 1970-01-01
        • 2011-02-25
        • 2019-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多