我正在编写一个应用程序,我在其中实现了几个不同的窗口,其中每个窗口都是一个单独的类。现在我需要以某种方式将单个配置对象传递给所有这些对象。我的GUI设计方式,我有一个主窗口,可以创建自己的一些子窗口,这些子窗口可以有自己的子窗口(因此不可能在初始化部分创建所有窗口并提供配置从一开始就反对所有人... ...
在它们之间共享此配置对象的最佳做法是什么?总是通过构造函数传递或者将它作为final public static
的某个位置传递并让每个窗口对象在需要时访问它?
由于
答案 0 :(得分:3)
始终通过构造函数。避免使用可变的静力学。
听起来你在旧学校扩展了一切。如果一个类不需要扩展(通常,如果你没有覆盖任何方法),那么不要扩展它。 “更喜欢继承的组合。”
OTOH,一个大“知道一切;一切都知道它”上下文类也不好。保持小事,每个班级做一件事(对于“一件事”的某些合适的定义)。答案 1 :(得分:-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);
...
}
}