2010-03-16 70 views
1

我正在编写一个应用程序,在那里我实现了几个不同的窗口,其中每个窗口都是独立的类。现在我需要以某种方式将一个配置对象传递给它们。我的GUI的设计方式是,我有一个主窗口,它可以创建自己的一些子窗口,这些子窗口可以有自己的子窗口(所以不可能在初始化部分创建所有窗口并提供配置从一开始就反对它们)...将配置传递给每个GUI对象的最佳实践

什么是在它们之间共享这个配置对象的最佳实践?总是通过构造函数传递,或者在某个地方作为final public static并让每个窗口对象在需要时访问它?

谢谢

回答

3

总是通过构造函数。避免可变静态。

这听起来像你在旧学校扩展一切。如果一个类不需要扩展(通常,如果你不覆盖任何方法),那么不要扩展它。 “更喜欢继承的组合。”

OTOH,一个大“知道一切;一切都知道”的情境类也不好。保持小事情,每个班级都在做一件事(对于“一件事”的某些合适的定义)。

+0

怎么样FacesContext? – Roman 2010-03-16 22:48:58

+1

像汤姆说的那样做! – fabrizioM 2010-03-16 22:49:35

-2

在这种情况下,我宁愿你的第二种方法。喜欢的东西:

Configuration.getCurrentConfig(); 

我也通过继承JFrame的进一步继承看到了类似的问题的解决方案:

public abstract class BasicFrame extends JFrame { 

    protected BasicFrame (Map<String, String> configParams) { 
     ... 
    } 
} 

public class SomeFrame extends BasicFrame { 

    public SomeFrame (Map<String, String> configParams, String title) { 
     super (configParams); 
     ... 
    } 
}