(1)、接口
(2)、抽象类
(3)、构造方法的访问权限为私有
单例模式的两种方式:
饿汉式
class Singleton {
private static Singleton instance=new Singleton();
private Singleton(){}
static Singleton getInstance() {
return instance;
}
}
懒汉式
class Singleton {
private static Singleton instance=null;
private Singleton(){}
static Singleton getInstance() {
if(instance==null)
instance=new Singleton();
return instance;
}
}
例如:编写一个类,该类不能被继承,可被实例化N次。使用单例模式
public class single {
public static int count = 0;
private single(){}
static single getInstance() {
if(count!=n){
System.out.println(count);
count++;
return new single();
}
else return null;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
single test = single.getInstance();
single test1 = single.getInstance();
single test2 = single.getInstance();
single test3 = single.getInstance();
System.out.println("test "+test+",test1"+test1+",test2"+test2+",test3"+test3);
}
}
(1)、接口
(2)、抽象类
(3)、构造方法的访问权限为私有
例如:编写一个类,该类不能被继承,可被实例化N次。使用单例模式
public class single {
public static int count = 0;
private single(){}
static single getInstance() {
if(count!=n){
System.out.println(count);
count++;
return new single();
}
else return null;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
single test = single.getInstance();
single test1 = single.getInstance();
single test2 = single.getInstance();
single test3 = single.getInstance();
System.out.println("test "+test+",test1"+test1+",test2"+test2+",test3"+test3);
}
}