Interface 受SO启发的关系UML图中的接口

Interface 受SO启发的关系UML图中的接口,interface,uml,relational-database,stack-overflow,Interface,Uml,Relational Database,Stack Overflow,可能重复: 我的家庭作业是从一开始就发展起来的 问题:以类似于中的方式发布帖子,以便第一篇帖子是问题,其他帖子是问题后的回复 问题:您将如何改进接口?更简单的数据结构会让事情更简单吗?你的第一个问题让我困惑。UML让我想到对象,“Posts表”让我想到关系数据库。你指的是哪一个?我假设您想要对象 您需要一个表示问题和答案的接口或抽象-也许这就是Post接口。它将具有文本和作者等属性,以及发布时的时间戳 因为问题永远不会出现在答案之前,如果您有一个Post实例集合,那么如果您按时间戳排序,它将按

可能重复:

我的家庭作业是从一开始就发展起来的

问题:以类似于中的方式发布帖子,以便第一篇帖子是问题,其他帖子是问题后的回复


问题:您将如何改进接口?更简单的数据结构会让事情更简单吗?

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

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

因为问题永远不会出现在答案之前,如果您有一个Post实例集合,那么如果您按时间戳排序,它将按照正确的顺序排列

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

从对象的角度思考意味着抛开对用户界面和数据库的关注。您可以设计对象以提供所需的行为类型。您首先可以有一个简单的文本接口,对象序列化可以实现持久性。但是首先要把物体弄对

当你说“接口”时,我想到了Java接口。它们声明了类的签名,但没有说明实现。因此,您的Post接口可能有问答实现

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


就像我说的,现在还不用担心表或持久性。想想物体。最好把整个问题都放在对象上,而不仅仅是发帖、提问和回答

+1用于整理混乱。我没有考虑这个项目比Python和MySQL更重要的项目。第一段很有趣。你能进一步解释一下吗?我添加了两个界面来更新照片,并根据你的提示进行了许多修复