我知道这可能是一个重复的问题。但我从来没有找到一个初学者能理解的正确解释。
我的问题是“在业务逻辑层中我们可以做什么”。 我完成了三层架构的项目。但我只使用BLL在UI和数据层之间传递值。
但每当我参加面试时,他们都会问我在BLL中做了什么。
请帮助我理解BLL的正确使用。
如果您可以的话,请提供一些示例代码。
这个问题可能会被删除,因为它不符合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则与数据库相关,并且不关心任何业务或业务规则。
如果所有的业务逻辑,也就是数据处理都是分开的,那么您可以安全地从一个数据库切换到另一个数据库。
同时,您可以使用相同的代码支持多个数据库(如SQL Server,MySql,Access,文本文件)。