我想知道包含“主类”(一个类应该只有一个实例)的代码是否被考虑实现“ 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
答案 0 :(得分:0)
单例设计模式意味着不可能创建该类的多个实例。包含“主类”的代码通常是代表代码起点的类,是一次对其进行初始化的正确格式,但是从技术上讲,没有什么阻止我们创建它的另一个实例。主类的存在并不一定会使它成为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;
}
}