gpt4 book ai didi

data-structures - OO 设计问题——父/子(人)——通函?

转载 作者:行者123 更新时间:2023-12-03 20:07:54 27 4
gpt4 key购买 nike

我对 OO 设计过程还很陌生,所以请耐心等待....

我有两个实体需要建模为类,将它们称为 Parent 和 Child(它足够接近实际问题域)。一位家长将有一个或多个 child ——我对这个申请中没有 child 的家长不感兴趣。

我的大脑出去吃午饭的地方在于我需要能够从另一个中找到一个。在我的数据库中,我可以使用普通的外键关系来实现这一点,并且 SQL 基于集合的性质使得查找给定父级的所有子级或给定子级的父级变得容易。但作为对象...?

我认为 Parent 应该携带一个 Children 的集合(列表,无论如何)。我还认为每个 Child 都应该引用它的 Parent。然而,引用的循环性质让我很头疼。

我是:

  • 在正确的轨道上?
  • 完全脱离基地?如果是这样,我应该怎么做?

  • 这几乎肯定会在 VB.NET 中实现,但我离削减代码还有一段距离。

    8 个回答后编辑:

    谢谢大家。很难只选择一个答案来接受。

    为了澄清答案中提出的一些问题:
  • parent 和 child 很不一样
    实体——没有继承
    关系。我选择了
    我做的名字是因为它们是
    非常接近现实世界
    问题域,现在看到它是
    来自 OO 的混淆源
    看法。
  • 等级只有一层深—— child 永远不会有 child
    在应用程序中。

  • 再次感谢。

    最佳答案

    创建树结构时,循环引用很好且绝对标准。例如,HTML 的文档对象模型 (DOM) 在每个 node 上都有父属性和子属性。在 DOM 树中:

    interface Node {
    // ...
    readonly attribute Node parentNode;
    readonly attribute NodeList childNodes;
    // ...
    }

    关于data-structures - OO 设计问题——父/子(人)——通函?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1028965/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com