Java类的封装性不光体现在对属性的封装上,实际上方法也是可以被封装的,当然在方法封装中也包含了对构造方法的封装。
eg.
class Singleton{
private Singleton(){ //将构造方法进行了封装,私有化。被私有化的构造方法不能在外部直接实例化。
}
private static Singleton sinleton=null;
public static Singleton getInstance( ){
if(singleton==null){
singleton=new Sigleton();
}
return singleton;
}
}
public class SinletonDemo{
public static void main(String args[]){
Singleton s1=Singleton.getInstance();
Singleton s2=Singleton.getInstance();
Singleton s3=Singleton.getInstance();
}
}
不管在外部有多少个Singleton的对象,但只能通过getInstance()方法取得实例化对象,此时s1、s2、s3实际上都使用了一个对象的引用。
单态设计模式的核心就是将类的构造方法私有化,之后在类的内部产生实例化对象,并通过类的静态方法返回实例化对象的引用。