DAL和BLL的组成或继承?

时间:2009-12-08 20:16:02

标签: .net design-patterns oop

问题

  1. 数据访问层(DAL)和业务逻辑层(BLL)是应该通过接口还是通过抽象基类公开?
  2. 我们何时应该选择抽象类而不是接口,何时选择接口而不是抽象类?
  3. 使用抽象基类的一个好处是,如果外部方决定使用基本抽象类扩展/定制(特定层的)功能,那么该特定层公开的许多方法已经在基础中实现抽象类,而使用接口,需要实现特定层公开的所有公共方法吗?

1 个答案:

答案 0 :(得分:1)

主要区别在于类只能从cingle类继承,而你可以实现许多接口。

有一个很好的discussion of the pros and cons here

1)通常,这些是具体的类 - 它们可以使用接口/抽象类来形成一致的框架(BusinessBase类,BusinessCommand类等),但我不确定你得到了什么。

2)当你想继承一些实现时,通常使用抽象类。通常是一个接口,当您不希望限制应用程序类继承其他东西时。

3)是的,这是主要的好处,但由于单一继承模型存在缺陷。