4

我知道这可能是一个重复的问题。但是我从来没有找到像我这样的初学者可以理解的正确解释。

我的问题是“我们可以在业务逻辑层中做的所有事情”。我做过 3 层架构项目。但我只使用 BLL 在 UI 和数据层之间传递值。

但每当我参加面试时,他们都会问我你在 BLL 里做了什么。
请帮助我理解 BLL 的正确使用。
如果可以,请提供一点示例代码。

4

3 回答 3

10

这个问题可能会被删除,因为它不是 stackoverflow 喜欢的格式。

BLL 处理业务逻辑,例如如何执行特定公式或执行工作流。它通常包含公司希望实施的规则。

数据层通常只是从数据库、文件或其他数据源中获取数据,而不对其进行任何进一步的修改。通常是业务层将数据加载到某种业务相关的类/对象中。BLL 还可以在将数据传递给 UI 层之前修改来自数据层的数据。UI 层仅进行简单的验证并呈现从 BLL 获取的数据

例如。

在数据层

你可以有一个功能

public DataSet GetAllAccounts()
{
 DataSet ds;
 //Some sql code to read out the sql data using datareader and dataadapter;
 return ds;
}

在业务层中,您可以拥有

public List<Account> GetAllAccounts()
{
 DataSet ds = DataLayerClass.GetAllAccounts();
 return (from Tab1 in ds.Tables[0] select new Account(){AcctNum =Tab1.AcctNum, Name =Tab1.Name}).ToList();
}

如您所见,Account 是一个特定于业务的对象,而 DataSet 是与数据库相关的东西,不关心业务或任何业务规则。

于 2013-05-23T04:29:21.670 回答
2

如果您的所有业务逻辑(我的意思是数据处理)都是单独完成的,那么您可以安全地从一个数据库切换到另一个数据库。

您还可以使用相同的代码支持多个数据库(SQL Server、MySql、Access、文本文件)。

于 2013-05-23T05:06:09.967 回答
1

首先你应该知道为什么我们将我们的对象分成两个单独的数据和业务层,而在面向对象的数据和操作属于同一类时,原因就在这里,当我们通常生产企业应用程序时,我们的数据更改很少,但我们的业务是即将改变,所以这个模式帮助我们改变特定的部分,

如果您现在了解使用 3 层模式来回答您的问题的主要原因之一,那么您实际业务中的所有逻辑都可能在那儿具有相同的名称,例如在金融项目中 RegisterVoucher 可以是一种注册凭证的方​​法请注意以及在注册之前应检查的所有验证。

于 2013-05-23T04:29:58.703 回答