OOP和GUI:在哪里实现? [关闭]

问题描述 投票:0回答:1

大约六个月前,我在我的工作中安装了一个全栈开发人员帽子,并开始研究一个由GUI和数据库组成的工具。客户端已经要求使用Python编写该工具,因此我一直在使用PyQt公司的许可来创建接口。

这是我创建的第一个这样的工具,并且进展顺利,但是当我将PyQt的各种GUI元素子类化时,一直在唠叨我的问题是:“我应该在哪里实现这个?”

例如,工具的一个功能包括为用户提供一个表单来填写(这是一个子类的GUI元素),然后提交完成的表单以存储在数据库的一个表中 - 非常标准的东西。用户填写表单,并在按下“提交”按钮后,验证表单的字段以确保它们遵守某些约束,然后在数据库中调用存储过程以提交表单的数据。我们称这个函数为submit()。

很明显,有很多种方法可以构建代码,但我一直在使用的三大方法是:

  1. 直接在表单的主体中实现submit()作为其方法之一
  2. 在类之外创建函数并让类本身调用它们
  3. 创建一个“处理程序”类,在单击“提交”按钮时发出的信号中接收表单的字段

我的问题是:如果有的话,哪一个是最好的方法呢?当我说“最好”时,我的意思是哪个是最接受公约的“OOP-ish”,以及哪些对于追随我阅读和维护的程序员来说最容易。

提前致谢 :)

oop pyqt4 conventions readability maintainability
1个回答
0
投票

将应用程序的不同部分视为系统,每个系统都有自己的责任。例如,UI系统,数据库系统以及实现业务规则的系统之间的系统。在每个系统中,拥有与系统抽象相匹配的不同版本的业务对象;例如,UI系统中的用户输入表单,数据库系统中的用户表,业务系统中的用户模型。

然后,根据您的选项3,通过消息和信号在不同系统之间建立通信。您必须决定传递的数据有效负载的某种协议,以便您不会泄漏系统之间的抽象。数据传输对象是一种很好的方法,但您也可以发送字节或一些文本表示,如JSON。

© www.soinside.com 2019 - 2024. All rights reserved.