当您弄乱由工具生成的文件时,您会期待什么?混乱,不是吗?这是一个非常非常重要的,总是被开发人员遗忘。
以马蒂斯为例。它会为您生成一个 XML 文件和一个 .java 文件。为什么地球上的开发人员开始改变这些类?后来他们抱怨一切都一团糟,他们指出马蒂斯是有罪的,因为马蒂斯没有做 A 或没有做 B。马蒂斯唯一有罪的是无法修复开发人员推动的混乱. 这是人工智能领域的问题,我个人并不期望很快有任何解决方案。
有一个或多或少简单的解决方案:OOP。
我解释说:OOP 最重要的概念之一是“责任”,这意味着某个类在更广泛和更复杂的问题域中具有有限且明确定义的责任。因此,Matisse 为您生成了 UI,它基本上由 UI 元素、事件处理程序等组成。
然后你说:嗯...我需要添加一些逻辑,否则 UI 将不起作用。真的。这是另一个责任,它永远不能 在 Matisse 生成的同一个类中实现。因为要么人们很懒惰,要么不明白 OOP 中的“责任”是什么意思,人们实现了他们需要的任何东西,添加了大量变量并在一个绝对不负责业务逻辑的类中促进各种疯狂。
通过像继承这样非常简单的事情,您可以在扩展类中分离业务逻辑。基类是由马蒂斯产生的。扩展的类是您手动实现的类,其中包含事件处理程序的实现、UI 元素的初始化等。
许多开发人员很想手动编辑 Matisse 生成的 .java 文件。黄金法则是:永远不要手动编辑 .java 文件。Matisse 为您提供了定义所需内容并调用所需内容的方法。永远不要编辑 Matisse 生成的资源(.xml 和 .java),您保证它(Matisse)能够再次加载它,以防您将来需要更改 GUI。您可能会发现自己很想直接编辑 .java 甚至 .xml 文件。请抵制这种诱惑并教育自己;将来你会感谢自己的。
So... you can use whatever tool you wish or whatever provides the sexiest UI elements.
All tools will fail if you fail to separate UI from business logic.
All tools will succeed if you succeed in your main task as programmer which is: produce decent code.