问题标签 [concrete-inheritance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
304 浏览

propel - 如何找到具有具体继承的推进模型的子类列表

我正在为我当地的慈善机构构建一个迷你厘米(是的,我知道我可以使用牙线项目,但他们想要自定义编码)

我的推进模式目前看起来像这样:-

我希望能够获得一个包含“home_page”和“static_page”的列表——而无需在添加新页面类型时手动创建它。

有没有一种简单的方法来获得这样的列表,还是我必须用反射类等写一些神奇的东西?

0 投票
1 回答
1182 浏览

inheritance - 同一架构中的不同继承类型

我在 symfony 项目中使用 Doctrine 1.2,我正在考虑在我的模式中混合具体和列聚合继承类型:列聚合让我在父表中查询并获取父记录和子记录,而具体继承让我得到一个更干净的架构。另外,混合将在同一个继承链中。我将如何编写模式文件?像下面这样?

或者像这样:

有任何危险/警告吗?

0 投票
0 回答
369 浏览

inheritance - 学说继承:找到一个表的所有孩子

我有一个关于 Doctrine 中的表继承的问题。例如,我将使用 3 个表:

如您所见,有一个父表Notification和两个子表NotificationLikeNotificationComment它们使用具体继承来扩展父表。

我想得到所有的通知。如果没有某种 JOIN,我怎么能做到这一点?

如果我尝试Doctrine_Core::getTable('Notification')->findAll(),我会得到 0 条记录。

有任何想法吗?

0 投票
2 回答
1501 浏览

hibernate - Hibernate MappingException 与 Grails 中具体的非域类的继承

情景

我需要在两种不同的上下文中表示一个对象。一个上下文不应该持续存在,而另一个应该。持久对象是从另一个系统中提取的实际数据。非持久对象代表产品定义的一部分。将两者进行比较,我对存储定义数据不感兴趣。持久化对象需要存储额外的信息。

实施

为了实现这一点,我决定最合乎逻辑的做法是在 src/groovy 文件夹中创建基类,以避免 grails/hibernate 想要将其作为域类持久化。

我要保留的域类如下所示。

最后,我们拥有拥有许多 OwnedResources 的 Owner 类。

问题

当我运行应用程序时,我最终得到了一个友好的 Hibernate 异常:

也许我的实现是不好的做法,因为在对 StackOverflow 进行了多次谷歌搜索和搜索之后,我还没有遇到任何人面临同样的问题或尝试类似的实现。大多数人都在尝试使用抽象类,这确实有效。我希望类 Resource 是具体的,因为我需要实例化它。答案可能只是 grails 不允许此功能,但我想听到一个明确的答案和任何可能的解决方法。我倾向于必须复制类而不是使用继承。

我做错了什么,为什么会发生这个错误?这个实现可以在 grails 中完成吗?

0 投票
1 回答
1955 浏览

php - Doctrine 2 带有关联的具体表继承

我已经阅读了Doctrine 2 Inheritance Mapping with Association,但如果你需要Animal自己成为一个实体,比如创建选项列表。

在这种情况下,a 的鉴别器列Pet位于 的物种列中animal table

宠物数据库架构

所以课程会是这样的。

我看到了几个问题。

  1. animal表没有外键owner。所以这个 $pets协会是行不通的。

  2. Animal并且Pet或多或少是同一件事。如果有人更改了Animal这些更改中的某些内容,则不会反映在任何子Pet类中。

第一个问题的可能解决方案是有一个名为 的额外表pet,但关联仍然存在问题,因为鉴别器列仍在animal表中并且复制列pet会破坏规范化。

在此处输入图像描述

0 投票
1 回答
3535 浏览

python - SQLAlchemy 与具体继承的多态关系

我正在使用带有 SQLAlchemy 的具体表继承。在声明式样式模型类中,我已成功配置它。

我的代码就像:

在 shell 中测试它时工作正常:

然后我在其他模型中设置关系时遇到了麻烦。每个条目都有一个外键post_id来加入Post模型,但我无法在Post. 那是行不通的:

它提出了一个异常并说:

InvalidRequestError:一个或多个映射器无法初始化 - 无法继续初始化其他映射器。原始异常是:未映射类“models.entry.Entry”。

显然Entry是一个抽象类,它不能映射到一个真实存在的表。官网的文档有一个例子,但它的基类不是抽象的。现在我应该如何设置与抽象模型的多态关系?

0 投票
3 回答
1235 浏览

php - Symfony2,推进装置和具体继承

我在 Symfony2 中加载 Propel 固定装置时遇到问题。我有以下架构:

模型构建正确。当我尝试加载以下固定装置时会出现问题:

出现以下错误:

[Propel] 异常
无法为自增主键 (application.ID) 插入值

我添加了两次“first_app”应用程序(一个在Application中,另一个在IphoneApplication中)以防止我的IphoneApplicationIdentifier夹具出现另一个问题:

[Propel] 异常“Acme\MyBundle\Model\Application”类中的对象“first_app”未在您的数据文件中定义。

如何为具体的继承模型插入夹具?

0 投票
3 回答
889 浏览

java - 我应该使用 Abstract 还是 Interface ... 还是从应该扩展的 Concrete 类开始?

我对 OO 设计没有足够的了解,无法确定我是否在设计应用程序。

这是一个简单的想法:

我想编写一个在地铁上旅行的应用程序。

我开始定义以下内容:

定义了一些方法的 Trainline 接口。然后我创建了一个名为 Lines 的具体类。Lines 类什么也没做。它有 getNumberOfStations() 之类的方法,但它不知道任何数量的站,所以只返回 null。

然后我有一个 CentralLine 类来完成真正的工作,它扩展了 Lines 并提供了真正的实现。

在此处输入图像描述

问题:

  1. 我需要“线条”具体类吗?我不应该让 CentralLine 和 CircleLine 实施 TrainLines(这些都是伦敦地铁上的火车线)吗?
  2. 或者我应该删除 TrainLines 接口并只使用 Lines 具体类?
  3. 还是应该 TrainLines 是一个抽象类?
  4. 除了漂亮的类映射图之外,接口或 Lines 超类是否提供任何价值...见上文 :)
  5. OO 可以为我做哪些很酷的事情?我应该对 OO 设计做什么?

谢谢 !!!!

0 投票
5 回答
47552 浏览

java - 抽象类中的具体方法

我了解抽象类可能包含抽象和具体方法(即带有主体实现)。我的问题是:子类可以继承/覆盖抽象超类的具体方法。其次,他们是否必须以与实现抽象方法相同的方式来实现具体方法?

0 投票
1 回答
2239 浏览

python - Peewee and Database Inheritance

I'm trying to learn Peewee and Bottle by making a book note-taking application.

Say I have the following entities:

I would like to be able to make Notes for Chapters, Books, and Subjects.

In a DB, you would do:

(If you wanted a M:N relationship between note and notable, you would do a note_notable bridge table as well).

You would have before insert triggers on subject, book, and chapter that would insert a row into noteable, retrieve the new row's noteable_id, and use that on the incoming row.

I'm assuming that if you are using an ORM like Peewee you would want to do that in application logic rather than triggers.

How can I implement this model in Peewee?