接口与类实例

本文关键字:实例 接口 | 更新日期: 2023-09-27 18:37:11

我的应用程序有一个 BusinessLogic 层,该层调用 DatabaseAccessLayer,其中包含一个用于 CRUD 操作的静态类。 它打开与我的数据库的连接,执行更新然后返回(它不单独存储任何内容)。

当我的端点需要控制其写入的数据库(TEST1、TEST2、DEV 等)时,问题就来了。 我需要将连接字符串传入静态类。

正在努力理解为什么接口比使用类的直接实例更好,反之亦然,或者实际上是否有另一种首选方法(我读了一篇关于使用委托的文章,但这对我来说似乎是老式的)。

我尝试编写一个接口,在数据库访问层中实现它,但是如何从业务逻辑层调用它? 我不在乎 BL 点的 DAL 中的代码是什么,我只希望它调用该代码。 但似乎如果我实现它,我必须实现所有方法(那里有什么代码! 而且我知道您不能声明接口的实例并调用方法。

有人可以提出一种方法吗? 使用类的实例就足够了吗?

接口与类实例

我认为你混合了两个相当不同的东西,接口和类的实例。

简而言之:

  • 接口就像一个合约 - 所有将实现它必须实现它的方法
  • 一个实例就像...实例 - 即创建的对象根据蓝图

关于你的各种连接问题,现在,这是另一个我认为无关紧要的问题。你的类是静态的,好的,这意味着你不能创建它的实例。您可以通过调用其方法直接使用它。始终可以将连接字符串作为参数传递给其任何方法。事实上,这就是我建议的解决你的问题的方法:

将连接字符串作为参数传递给其任何方法

编辑:现在我再次看到您的问题...您可能遇到静态类成员字段的问题,如果您将连接字符串作为静态类的字段!请注意,静态类的字段是共享的,这意味着,如果由使用该类的任何端点更改,则对于将使用该类的所有其余端点,它们都会更改。所以,这可能会给你带来麻烦...

在这种情况下...再。。。将连接字符串作为参数传递给其任何方法

Edit2:不,我建议您将conn字符串作为参数传递给数据层是错误的!!数据层应封装连接字符串(作为内部参数)。使用者不应知道数据的方向 - 无论是 DEV 还是 PROD。