首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库结构和面向对象的继承和多接口

数据库结构和面向对象的继承和多接口
EN

Stack Overflow用户
提问于 2013-07-10 14:11:37
回答 2查看 148关注 0票数 0

因此,在学习了一些关于接口编程和其他一些与继承相关的主题之后,我有了另一个问题。

数据库通常是父子表。许多应用程序有2-4个层次的层次结构,如引用、引用项、引用计费项等,以及一些查找表。现在,如果我将其建模为类,我将拥有

代码语言:javascript
复制
Class Referral
{
List<ReferralLineItems> rli;

}
Class ReferrralLineItem
{
List<ReferralBillingLineItem> rbli;
}

在这种情况下,我可以在哪里应用接口或抽象类?

谢谢!

我见过许多高级架构师为IReferralBLC和IReferralLineItemBLC等创建接口来封装业务逻辑。这些接口几乎总是只有一个实现,比如ReferralBLC、ReferralItemBLC等,那么为什么需要接口呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-10 21:18:10

就领域实体而言,让它们实现接口的好处是非常有争议的。Some even将其视为反模式。

示例中的对象共享了一些值得注意的特征,这些特征应该让您在添加接口之前三思而后行:

  • 他们是贫血的,也就是没有任何行为。接口用于定义契约,对象之间的消息传递协议。如果没有要发送的消息,也就是没有行为可用,它们就会失去很大一部分兴趣。
  • 它们不太可能作为依赖注入到其他对象中。您不需要在单元测试中模拟对象,因此实际上并不需要模拟和真实类的公共父抽象,这通常体现在接口中。
票数 2
EN

Stack Overflow用户

发布于 2013-07-10 16:24:17

它们存在的原因与它们最初存在的原因相同,那就是松散耦合。您可以轻松地更改实现类,而无需修改这些接口(可能使用实现的规则引擎),再加上测试,这总是很重要的,而且这也是用域的语言描述业务。另一方面,由于对象模型和关系模型之间的conceptual difference (称为Impedance Mismatch ),Object Relational Mapping的思想在计算机科学界一直在讨论,并且仍在讨论中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17563576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档