gpt4 book ai didi

oop - 分层对象设计(Java)

转载 作者:行者123 更新时间:2023-12-04 14:41:42 24 4
gpt4 key购买 nike

我正在为类似于以下问题的问题寻找优雅的设计:

故事可以具有灵活的层次结构。它可能由几本书组成,每一本书都有章节,每一本书都有章节,每个章节都包含文本。或者,它可能只有部分(例如一个短篇小说)。或者它可能只由具有部分的章节组成。在所有情况下,您都不能混合风格(因此您不能在基于书籍的故事中添加章节,而必须将章节添加到书籍本身)。

我已经为此类问题提出了几个设计解决方案,但它们变得困惑。是否有一种干净的方式来表示这一点,以便在引用 Story 类的情况下,我可以以清晰、系统的方式访问内容?

最佳答案

好的 OO 设计始于考虑用例而不是类层次结构。这是一个常见的错误,往往会产生过于复杂的设计。

首先考虑您正在构建的内容,并使用问题领域的语言使用英语散文写出问题陈述,描述您正在解决的问题。

如果产品是 UI,则考虑制作模型。

然后您可以开始编写用例并开始考虑对象将如何相互交互。

它被称为面向对象的编程,而不是面向类的编程。类是代码中管理/创建/运行系统中所有对象的规范。我会考虑对象以及它们在做什么。类只是一个实现细节。

如果您的目标是对层次结构执行操作,您可能需要考虑使用复合模式。你可以做一些事情,比如拥有一个包含 Story 对象列表的 Story 对象。每个 Story 对象也有它自己的类型(书集、书、章节、子章节、段落、文章),以及它自己的属性和方法(取决于您的用例)。

关于oop - 分层对象设计(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7874527/

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