有人可以告诉我这是否是单身人士课程吗?
public class Final_output{
Cafe_factory obj=null;
private Final_output()
{
obj = new Cafe_factory();
obj.getOrder("French Fries");
obj.getOrder("Biryani");
obj.getOrder("Ice-cream");
}
public static void main(String args[])
{
new Final_output();
}
}
Cafe_factory
是同一个包中的另一个类。
答案 0 :(得分:9)
这不是Singleton。
Singleton例如:
public class Singleton {
private static final Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
答案 1 :(得分:2)
不,不是。因为您无法在其外部创建此类的实例(至少应存在一个实例)。另一方面 - 您可以根据需要在main
内创建任意数量的实例(因此它也不是单例)。
以下是Singleton的一个例子:
public class MySingleton{
private MySingleton(){}
private static InstanceHolder{
private static final MySingleton instance = new MySingleton();
}
public static MySingleton getInstance(){
return InstanceHolder.instance;
}
}
答案 2 :(得分:2)
不是。
单例的目标是将可以创建的同一个类的实例数限制为1,并提供静态方法来检索此实例。
这通常通过私有构造函数和静态方法来完成,以检索此唯一实例。此处Final_output
和Cafe_factory
都不尊重此合约,因此没有人使用单例模式。
答案 3 :(得分:1)
由于您可以在Final_output类之外的代码中创建大量新的Cafe_Factory对象,因此不会是单例。永远不会使用new关键字创建单例。相反,您通过静态方法获取它的实例。
答案 4 :(得分:0)
这个:
public class Final_output{
private static Cafe_factory obj = null;
private Final_output()
{
obj = getCafeInstance();
}
public static getCafeInstance(){
if(null == obj){
obj = new Cafe_factory();
obj.getOrder("French Fries");
obj.getOrder("Biryani");
obj.getOrder("Ice-cream");
}else{
return obj;
}
}
}
答案 5 :(得分:-1)
否这不是singleTon
public class Final_output{
private static Final_output ourInstance = new Final_output();
Cafe_factory obj=null;
private Final_output() {
obj = new Cafe_factory();
obj.getOrder("French Fries");
obj.getOrder("Biryani");
obj.getOrder("Ice-cream");
}
public Final_output getINstance(){
return ourInstance;
}
}