2009-02-23 49 views
4

在堆栈溢出播客杰夫和乔尔的插曲#41讨论了导致使用不便GUI意识形态。你见过哪些GUI工具包,最有利地影响使用它们的程序员?对于可测试性和可用性,您发现哪种级别的分离(在用户界面和实现之间)最有效?最自然的GUI工具包

回答

4

你见过什么GUI工具包,大多数有利地影响使用它们的程序员?

我自己的,基于与计算机科学与我发展为行业的特定需求开发经验。总之,没有什么灵丹妙药是你必须使用经验和判断力的工具。适用于我的CAD/CAM软件的工具不适用于Web开发人员的网站,也不适用于办公软件的开发人员等。

你发现了什么水平(之间的用户接口和实现)分离的最有效的可测性和可用性?

对于运行在计算机桌面上的传统应用程序,我推荐使用Passive View的变体。负责创建和管理表单的类是一个将事件传递给UI对象的瘦shell。 UI_Object通过接口与表单交互。在术语中,UI对象实现了一个UI_View接口,并将自己注册到位于对象层次结构中较低位置的View Controller。

UI_Object然后执行实现修改模型的命令模式的对象。命令对象可以通过View Control公开的接口与各种视图进行交互。

这样做是什么让你撕掉表单类和与实现形式的接口存根类代替它们。存根类被用于自动化测试,尤其是集成测试。

接口精确定义了Form,UI_Object,Commands和视图之间的交互。它们可以被设计为相对语言不可知的,因此它们可以使平台之间的移植更容易。

我不会编程网络作为精通,但也有完成同样的事情相关的模式。

我还必须警惕被动视图可能会矫枉过正。您可能不希望将其用于简单设置对话框(如设置串口参数的对话框)。这是一个判断是否易于维护和编码值得追加测试时间。如果只通过一个命令调用一个对话框来修改某些设置参数,那么在命令本身内定义该对话框是一个很好的选择。