我目前正在攻读计算机科学学位的最后一年,并正在完成我的期末项目和论文。我将使用 ASP.NET Web 窗体和 C# 来创建一个 3 层项目 - 我不能真正称它为 3 层,因为它很可能永远不会托管在我本地 PC 以外的任何东西上进行测试,因为它是仅用于单一用途。
我的主要问题是:
根据我的理解,3-Layer 的想法是 BLL 引用 DAL,UI 引用 BLL 以创建完全的关注点分离。然而,我在几个教程之后做了一个小型模拟项目,所以掌握 3-Layer 的窍门,大多数基本教程仍然需要 UI 和 BLL 之间的参考。
例如在我创建的项目中,这是一个非常基本的 Products 和 Categories 类型的电子商务系统,我在 DAL 中创建了 Product 和 ProductDAL 类,然后在 BLL 中创建了 ProductBLL 类。通过这种设置,只使用一个数据库表(暂时忘记类别),BLL 似乎只是作为 UI 和 DAL 之间的一种接口,方法与 DAL 中的方法完全相同,并且只调用 DAL版本。
问题是要通过 BLL 访问 DAL,我必须将 Product 对象传递给 BLL 方法参数,这意味着首先在 UI 中创建 Product 对象,这意味着从 UI 引用 DAL。这是正确的做事方式吗?
我可以通过在 BLL 中创建一个方法来解决这种简单的情况,该方法采用适当的字段(例如字符串和整数)来创建产品对象并将其返回给 AddProduct 方法。但是,在将不同的产品属性绑定到 UI 中的标签时,我仍然需要访问 Product 对象。
所以本质上,我是否需要在 BLL 中加载大量方法来访问产品对象的属性?如果不是,那么实际上什么样的方法会去那里,你能给我一些在这种产品场景中可能进入 BLL 的方法的例子吗?
提前致谢,如果之前有人问过这个问题,我深表歉意——我确实阅读了很多关于 3 层架构的帖子,但大多数都是非常基础的,只能访问一张表。