-1

可能重复:
受 SO 启发的关系 UML 图

我从岗位上开发了我的作业。

问题:与 SO 中的帖子类似,以便第一个帖子是问题,其他帖子是问题后的回复。

问题:您将如何改进界面?一些更简单的数据结构会让事情变得更容易吗?

4

1 回答 1

2

你的第一个问题让我很困惑。UML 让我想到了对象,而“Posts-table”让我想到了关系数据库。你是指哪一个?我会假设你想要对象。

您需要一个既代表问题又代表答案的接口或抽象——也许这就是 Post 接口。它将具有文本和作者等属性以及发布时的时间戳。

由于问题永远不会出现在答案之前,因此如果您有一个 Post 实例的集合,如果您按时间戳对其进行排序,它将处于正确的顺序。

更新:UML 意味着面向对象的编程。Python 既是一种面向对象的语言,又是一种函数式语言。这意味着您将首先从对象的角度考虑问题。

从对象的角度思考意味着抛开对用户界面和数据库的关注。您设计对象以提供您需要的行为类型。一开始你可以有一个简单的文本界面,对象序列化将用于持久化。但首先要正确处理对象。

当您说“接口”时,我会想到 Java 接口。他们声明了类的签名,但对实现只字未提。所以你的 Post 接口可能有问答实现。

什么包含所有 Post 实例?什么拥有它们?我将拥有另一个名为 KnowledgeExchange 的对象来拥有帖子的集合。让它隐藏所有的实现细节并提供getQuestion和getAnswers的方法。不要强迫你的客户必须知道所有这些细节,甚至你是否将其实现为堆栈或列表。

就像我说的,暂时不要担心表或持久性。想想对象。最好用对象来解决整个问题,而不仅仅是帖子、问题和答案。

于 2009-07-25T11:49:41.693 回答