【问题标题】:Repository pattern: DAL or BLL [closed]存储库模式:DAL 或 BLL [关闭]
【发布时间】:2015-08-13 22:57:54
【问题描述】:

我正在尝试实现一个业务逻辑层,其中包含一些用于保存车辆预订数据的用例。对于应该在哪里实现存储库模式,我有点困惑。我应该在 BLL 还是 DAL 中使用它?这听起来很基本,但我在设计阶段有点迷失了。如果 Repository 模式不适合 BLL,那么哪一种适合。感谢任何帮助/提示。

【问题讨论】:

  • 存储库类应该是数据层的一部分,业务层将使用抽象(接口)访问那些。存储库类将具有通用 CRUD 操作。

标签: c# repository-pattern business-logic bll


【解决方案1】:

存储库模式的职责是存储和从数据层获取数据,并对数据层的外观进行抽象。 其背后的想法是,如果该底层发生更改,您可能需要更改存储库的实现,但不需要更改仍会看到相同界面的存储库用户。
特别要记住 SOLID 设计规则和单一职责,存储库不应该有任何业务逻辑,因此不能成为其中的一部分。 不过,业务层使用存储库。

【讨论】:

  • 谢谢 Philip,您所说的“数据层”是指数据访问层吗?困扰我的一个问题是,Repository 是否可以具有 Booking GetBooking(string RegistrationNumber) 之类的功能,是否违反任何良好做法?
  • 这是完全可以接受的(甚至鼓励)。但我会考虑这一点。 GetBooking(string) 或 Get(RegistrationNumber) 是否传达了更好的含义。我建议使用 RegistrationNumber 类型会更好。
  • 感谢大家的时间和精力。谢谢你帮我理清思路!
猜你喜欢
  • 2012-09-02
  • 2010-09-22
  • 1970-01-01
  • 2012-07-13
  • 2017-07-17
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 2011-01-23
相关资源
最近更新 更多