第57章

之间有什么区别小A:“单体模式和一个所有方法都是静态的工具类之间有什么区别?”

大B:“1、当一个Class被Load的时候,静态工具类的所有状态都已经被初始化了,而单体模式则可以控制自己的初始化过程2、单体可以继承别的类或被别的类继承,而静态工具类则不能(其实也能,但一旦继承了一个有非静态方法或静态值的类以后,它就无法保证自己只拥有一个实例,或达到只有一个实例的效果)3、单体可以被扩展到‘双体’,‘三体’,等等。但静态工具类则丧失了这种可扩展性。一般的无状态工具集合适合实现成静态工具类,而拥有丰富状态,但整个系统只允许有一个实例的类,适合实现成单体。”