在Java中如果想让类的对象实例只被创建一次,可以通过单例模式来实现。单例模式的实现是:首先先将类的构造方法的访问权限设为私有,并在该类方法中提供一个公有的取得该类的对象实例的方法。
public Dog{
private static Dog dog = new Dog();
//构造方法访问权限设为私有,其他类就不能创建该类实例
private Dog(){
}
//提供一个其他类获取该类对象实例的方法
public static Dog getDog(){
return dog;
}
}
上面代码是单例的一种,称为饿汉式单例,在该类没调用前,对象实例已经创建,在有些情况下,会造成资源浪费。
还有一种是懒汉式单例,当该类被使用时,才会创建对象实例。代码如下
public Dog{
private static Dog dog = null;
//构造方法访问权限设为私有,其他类就不能创建该类实例
private Dog(){
}
//提供一个其他类获取该类对象实例的方法
public static synchronized Dog getDog(){
if(dog==null) {
dog = new Dog();
}
return dog;
}
}