Java Swing中的多态性

Java Swing中的多态性,java,polymorphism,Java,Polymorphism,我基本上用swing完成所有桌面项目,我发现WindowBuilder非常棒。但我使用多态性为我创建的许多窗口创建了一个窗口模型,而且WindowBuilder似乎不喜欢它(它不识别扩展另一个窗口的窗口)。所以我想知道:在swing中使用多态性是否比创建单个独立的窗口更有效?多态性在swing中非常强大和有用,因为它通常可以跨越OO编程。有时,它也会把事情弄得乱七八糟,超出Swing的价值,就像它在整个OO编程中一样 与其他任何地方一样,在Swing中,重要的是如何通过使用多态性进行推理:在合理

我基本上用swing完成所有桌面项目,我发现WindowBuilder非常棒。但我使用多态性为我创建的许多窗口创建了一个窗口模型,而且WindowBuilder似乎不喜欢它(它不识别扩展另一个窗口的窗口)。所以我想知道:在swing中使用多态性是否比创建单个独立的窗口更有效?

多态性在swing中非常强大和有用,因为它通常可以跨越OO编程。有时,它也会把事情弄得乱七八糟,超出Swing的价值,就像它在整个OO编程中一样

与其他任何地方一样,在Swing中,重要的是如何通过使用多态性进行推理:在合理的情况下,Swing没有任何固有的特性使它比其他地方更难实现


我对WindowBuilder一无所知,但如果它阻止您对多态性的使用进行推理,或者限制或影响您对其他体系结构决策的思考,那么该工具可能没有您认为的那么好,而且几乎肯定不值得花那么多钱。没有工具可以使用

所以,多态性是一个偏好的问题?@gcarvalho97:不,这是一个关于手头工作的最佳工具的问题。我认识的大多数程序员都喜欢组合而不是继承,但在使用它能带来巨大好处的情况下,不要回避继承。不恰当地使用多态性(如“共享”变量)将失败,而过度使用多态性(如扩展不需要扩展的复杂类)则可能是危险的。看看Swing程序在扩展某种JComponent时会发生什么,然后给它一个包含getter和setter的x和y字段——灾难。1+回答。@gcarvalho97:一切都是偏好的问题——或者更准确地说:你所做的每一个决定都应该做出,因为你通过它进行了推理,并认为它是最好的。对于大多数你遇到的话题,你都不会发现“最佳实践”,你应该仔细考虑它们,但很少例外。它们都只是经验法则:在每个特定的用例中,什么是最好的取决于程序员进行编码,做出这些决定是编程的工作:)@gcarvalho97-注意,虽然气垫船和我给出了不同的一个词的答案,但这两条评论告诉你的是相同的事情。