繁体   English   中英

执行UI时如何设计类?

[英]How do i design classes when doing UI?

我注意到一种模式,当我进行C ++和后端编程(使用C#或任何语言)时,我所有的类都整齐而整洁。 最近,我注意到我所有的代码都在一个类中,并且我实际上有> 50个函数。 我现在意识到了,因为我正在做UI。 如果我要按页面或表单/对话框将它们分开,则我将拥有更多文件,更多代码行和更长代码行。 如果我将它们分开,则会遇到相同的问题(更多的文件,更多的行,更长的行)。 显然,行越少越好(代码越少=维护期间调试,更改或破坏的次数越少)。

这个特定的项目是5k行,其中2k来自网络或库。 我所有的.cs文件都是<1k行。 即使我在一堂课中有50多个功能,这也可以接受吗?

奖励:我注意到其中大多数功能仅被调用一次。 并将某些代码块(例如一个函数对数据库进行两次调用)作为它们自己的函数,这使我更难编辑,因为它们是在文件之间分配的,并且气球功能计数也是如此。 所以,我有点不知道该怎么办。 我是否创建更多的类来减少函数数量(每个类将增加总体上的函数调用,并且大多数已经被调用一次)? 我如何设计做前端/ UI的类?

我经常发现我的UI东西变得比纯类复杂得多。 考虑一下-您的“纯”类(基本上)基本上是机器指令,并且可以(或应该能够)假定经过预先验证的纯输入和输出,而不必适应人类行为的变化。

另一方面,UI会遭受所有人类的谬论-并且需要以人类可以理解的方式以人类可预测的方式做出响应。 这就是复杂性的所在。

考虑一下-在漂亮的,清晰定义的类中,其中每个函数针对已知的输入类型执行固定的操作,因此没有很多随机的BS可以预期或处理。

UI必须接受用户的所有不当,不一致或意外的输入和动作。 虽然我们作为设计师可以预先考虑其中的一些(甚至可以通过组合框和命令按钮将其最小化,a)。 所有这些都需要附加的后端代码,并且b)所有这些事情然后也可以以不同的方式进行交互。

在我们的课程中,WE决定某些方法/功能等如何相互作用并相互影响。 在用户界面上,我们可以尽最大努力将用户指向正确的方向,但是仍然存在随机元素。 如果用户在从列表中选择一个项目之前按下了按钮怎么办? 有几种不同的方法可以处理这种情况,所有这些都需要另一行(或十或一百)代码来优雅地处理。

最后,项目越复杂,UI可能越复杂,并且必须进行的工作越多。

相较于预测,管理和处理用户强加给我们的东西的随机怪癖,管理程序员在程序员明确定义的给定输入和产出的情况下的动作非常容易。 如果他们能引起注意,对吗?

无论如何,我相信所有这就是为什么UI代码变得更大,更复杂的原因。 至于如何以可维护的方式将其分解,上述人员将其覆盖。 抽象两个。 我设计一个表格。 我定义了供用户输入数据和/或指出他们接下来要发生什么的菜单。 然后,我定义该表单与我的干净整洁的后端类交流这些内容的方式。 然后,我提供了验证机制,以及帮助控制用户浏览所有内容的方法(例如,直到用户从列表中选择一个项目之前,按钮才处于启用状态……)。

复杂。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM