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