构造方法私有化的意思不是不允许new对象,而是禁止在外部类直接new出本类对象。
在单例设计中,Singleton类在定义的时候将构造方法私有化,而在内部仅仅new出一个对象,是为了禁止别的类在外面直接new Singleton()出来,这样你只要在Singleton类中new一个对象,就能确保无论什么情况都只会产生一个Singleton对象,外部无法new出来,内部已经定义好了,有且仅有一个对象,这就是单列设计的核心。
当然你可以在Singleton对象中new两个或者更多的对象留着备用,那就变成多例设计模式了。
无论单例还是多例,都是围绕构造方法私有化开展的,也就是说,定义类的时候自己确定好到底需要多少个对象,然后将构造方法私有化,外部无法随意地new出本类的实例化对象,只能通过调用才可以。
一般来说都是通过外部类来直接new出其他类的对象。
Keine Kommentare:
Kommentar veröffentlichen