创建"master-class"是否考虑使用单例或其他方式?



我想知道包含"主类"(一个应该只有一个实例的类)的代码是否被考虑实现"Singleton"设计模式,或者是否有其他设计模式遵循这个概念。

我创建了一个"GUI"类和一个"MasterControl"类类"MasterControl"定义了许多与GUI交互的方法,并包含一个操作它的"GUI"实例。

演示基本思想的代码。

public static void main(String[] args){
MasterControl controller = new MasterControl();
}
public class MasterControl{
private GUI Servant;
public MasterControl(){
Servant = new GUI(this);
}
}
public MasterControl(){
Servant = new GUI(this);
}
public class GUI{
GUIComponent c;
MasterControl master;
public GUI(MasterControl master){
this.master = master;
c = new GUIComponent(master);
}
}
//And so on
Singleton设计模式意味着不可能创建该类的多个实例。包含"主类"的代码通常是代表代码起点的类,初始化一次是正确的格式,但从技术上讲,没有什么可以阻止我们创建它的另一个实例。主类的存在并不一定使其成为Singleton设计模式。

Singleton设计模式的经典实现涉及一个具有自己的"getter"方法的私有构造函数,以及一个静态&未初始化的实例变量,它将表示Singleton类的单个实例。这种设计使得构造函数只能通过getter方法使用,因此可以编程为只有在第一次调用getter方法时才能调用。这将初始化实例变量,然后从这里返回。它看起来像这样:

class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if(instance == null) {
instance = new Singleton();
return instance;
}
}

最新更新