您的位置:首页 > 编程语言 > Java开发

0008_构造方法私有化与单例设计模式

2016-06-08 08:56 363 查看
class Singleton{
private Singleton(){		// 将构造方法进行了封装,私有化
}
public void print(){
System.out.println("Hello World!!!") ;
}
};
public class SingletonDemo02{
public static void main(String args[]){
Singleton s1 = null ;	// 声明对象
s1 = new Singleton() ;	// 错误,无法实例化对象
}
};

被私有化构造方法的类不能在外部直接实例化,只能从其类的内部取得实例化对象。

class Singleton{
private static Singleton instance = new Singleton() ;	// 在内部产生本类的实例化对象
public static Singleton getInstance(){		// 通过静态方法取得instance对象
return instance ;
}
private Singleton(){		// 将构造方法进行了封装,私有化
}
public void print(){
System.out.println("Hello World!!!") ;
}
};
public class SingletonDemo05{
public static void main(String args[]){
Singleton s1 = null ;	// 声明对象
s1 = Singleton.getInstance() ;	// 取得实例化对象
s1.print() ;		// 调用方法
}
};

构造方法私有化之后,就可以通过以上的形式取得实例化对象。

以上程序的意义:

不管外部声明了多少个Singleton的对象,但是最终结果都是通过getInstance()方法取得的实例化对象,也就是说,声明的任意多个对象实际上都使用了一个对象instance的引用。

 

单态设计模式(单例设计模式):Singleton DesignPattern

如果不希望一个类产生过多的对象的话,则就必须使用单态设计模式。所谓的单态就是在入口处(构造方法)限制了对象的实例化操作。

单态设计模式的核心就是将类的构造方法私有化,之后在类的内部产生实例化对象,并通过类的静态方法返回实例化对象的引用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java Java基础