【发布时间】:2010-12-24 13:59:14
【问题描述】:
问题
- 数据访问层 (DAL) 和业务逻辑层 (BLL) 应该通过接口还是通过抽象基类公开?
- 什么时候应该选择抽象类而不是接口,什么时候应该选择接口而不是抽象类?
- 使用抽象基类的一个好处是,如果外部方决定使用基抽象类扩展/自定义(特定层的)功能,那么该特定层公开的许多方法将已经在基中实现抽象类,而使用接口则需要实现特定层公开的所有公共方法?
【问题讨论】:
标签: .net design-patterns oop
【问题讨论】:
标签: .net design-patterns oop
主要区别在于类只能从一个 cingle 类继承,而您可以实现多个接口。
有一个很好的discussion of the pros and cons here。
1) 通常,这些是具体的类 - 它们可能使用接口/抽象类来形成一致的框架(BusinessBase 类、BusinessCommand 类等),但我不确定您的意思。
2) 当您想要继承某些实现时,通常使用抽象类。当您不想限制应用程序类从其他事物继承时,通常是一个接口。
3) 是的,这是主要优点,但由于单一继承模型存在缺点。
【讨论】: