gpt4 book ai didi

asp.net - bll、dal 和接口(interface)实现

转载 作者:行者123 更新时间:2023-12-02 21:49:40 24 4
gpt4 key购买 nike

我的问题与 bll、dal、接口(interface)有关。

我的项目的结构或多或少是这样的。 BLL, DAL, OBJ and 3 layer architecture(因为我不再重复问题和代码,所以我在这里给出链接)

我的问题是为什么我应该使用接口(interface),有什么好处。以及如何根据上面给出的项目结构应用接口(interface)。你能提供链接或答案吗?谢谢大家

最佳答案

接口(interface)允许您在没有实际实现的情况下定义行为,将其视为契约。

如果您只有一种实现,那么接口(interface)不是很有用,也不推荐。

当你有相同逻辑的多个实现时,接口(interface)就会发挥作用。以数据访问层 (DAL) 为例,如下所示:

public interface IPersonRepository
{
Person CreatePerson(string firstName, string lastName, int age);
Person LoadPerson(int personId);
Person SavePerson(string firstName, string lastName, int age);
bool DeletePreson(int personId);
}

现在,如果您有一个 SQL Server 数据库,那么您可以有一个实现 IPersonRepository 接口(interface)的存储库类,如下所示:

public class SqlServerPersonRepository : IPersonRepository
{
// Implement SQL Server specific logic here
}

假设您也想支持 Oracle,那么您创建一个 OraclePersonRepository,如下所示:

public class OraclePersonRepository : IPersonRepository
{
// Implement Oracle specific logic here
}

同样有用的是,您可以创建一个模拟人员存储库(用于测试),如下所示:

public class MockPersonRepository : IPersonRepository
{
// Implement mock logic here
}

关于asp.net - bll、dal 和接口(interface)实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18897544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com