什么是Business Objects,什么是Business Logic?

时间:2010-07-18 00:25:21

标签: business-logic

阅读时,我不断看到他们称之为Business Objects的内容。我已经查阅了维基百科,但我仍然没有得到Business Object的内容。

对于那些不了解软件架构等问题的人来说,有什么简单的解释吗?

另外,Business Logic是什么?

8 个答案:

答案 0 :(得分:23)

这很简单

系统中的每个实体,代表系统与之交互的人类世界对象,都是业务对象。

系统中围绕操纵业务对象的人类世界逻辑是一种业务逻辑。

这与作为实现细节一部分的对象和逻辑相反。

例如,在多层交易系统中,订单/交易将是业务对象,但心跳将是实施细节。

为流式传输编码订单/交易对象的逻辑将是实现细节,而一旦交易到达时将订单状态更改为“已完成”的逻辑是业务逻辑。

答案 1 :(得分:20)

嗯,业务对象通常被认为是代表实体的类,例如书籍或商店。这样的类具有某些属性,如价格,颜色,宽度,等值数字等。在Java或.NET中,它由所谓的setter和getters组成,即设置或获取这些属性的方法。

另一方面,业务逻辑是与该属性一起工作的部分或程序(该层),即该书如何出售。业务逻辑层使用业务对象来访问数据库。

答案 2 :(得分:13)

嘿,当我开始开发时,我对这个术语遇到了麻烦。

基本上,使用“商业”一词的唯一原因是因为术语是在商业软件的背景下发展起来的。因此,在这个意义上,假设该软件是为商业目的而构建的......而不是说,艺术,美学或创作目的。

因此,业务对象是现实世界“业务”对象的简单代码表示。因此,您可能拥有产品类或员工类。

业务逻辑,是应用程序中的逻辑,专用于软件设计的“业务”。所以,比如税收计算,或者产品与客户的关系......那种事情。

请注意,业务对象或业务逻辑的概念不适用于视频游戏开发或艺术开发。

它也不适用于某些框架或图书馆,例如ORMS或单元测试库,因为它们是可重用的组件,并非特定于任何“业务”。

答案 3 :(得分:3)

在传统的3层编程中,您有三个逻辑层或层。您有一个表示层,它是用户界面,底层是数据库层。中间层将是业务对象层。如上所述,业务对象应该被抽象出来,因为该网站可能根本不涉及业务。它是一个抽象层,可以更容易地更改表示层或切换到不同的数据源。

如果您的用户界面级别没有或只有很少的代码。它使设计人员更容易与程序员合作。设计人员可以改变网站的外观和感觉,而无需程序员必须对代码进行大量重写,使该网站工作。使用业务对象层,您可以执行大量的站点列表。您可以在不知道数据库层是XML数据库还是关系数据库的业务对象的情况下调用数据库层。然后业务对象层将更新对UI层的响应。 通常,使用的示例是银行交易。在用户界面中,客户输入他想从他的储蓄账户转账到他的支票账户的金额。

业务对象层将包含银行的业务规则。这意味着它将检查用户储蓄账户的余额,并确保转账金额不超过账户余额。业务层将包含实际计算储蓄账户和支票账户的新余额的类,它将提醒数据库层更新数据库。

答案 4 :(得分:2)

这与Fun Logic相反。

答案 5 :(得分:1)

业务对象:

class User {
    long id;
    String fullNames;
    int age;
}

class Book {
    long id;
    String bookTitle;
}

class Sales {
    long id;
    long userID;
    long bookID;
}

业务逻辑:

class BookSalesController {
    private User user = new User();
    private Book book = new Book();
    private Sales sale = null;

    public Sale sale(long saleID) {
        String query = "SELECT * FROM Sales s WHERE s.id = :saleID";
        ....
        .... execute the query

        // Assuming we have our Result Set here by now

        if (rs.next()) {
            sale = new Sales(rs.getString("User Names"));
            sale.setUserID(rs.getLong(userID));
            sale.setBookID(rs.getLong(bookID));
        }

        return sale;
    }
}

答案 6 :(得分:0)

业务对象的定义很难在搜索引擎上获得,因为它会告诉您Business Objects是SAP收购的公司。但这并不是大多数人所期待的。

业务对象是业务逻辑模型的业务场景封装。

例如:在采购领域:有一整套需要执行的活动。 从支出分析到产品信息请求以及为协商期限生成合同。因此,在这种特定情况下,像RFI(信息请求)这样的文档可以被认为是RFI业务对象的一个​​实例(它将具有与验证等过程相关的所有逻辑)。

答案 7 :(得分:0)

SAP系列业务对象与oracle核心设计模式中的业务对象不同,它与应用服务层交互...是的,业务对象确实与复合实体一起工作,但它有业务逻辑,它可以携带业务状态,一些简单的调整方法,它们是业务信息载体,可交换动态状态和应用程序层或域之间的交叉,但在不同的上下文中,它具有不同的详细指定名称,例如,我们可以说Web服务请求是一个xml格式的业务对象...它与数据实体

不同