单例方法和静态方法,从本质上来首都只创建一个类的实例,但是在实质上面,二者还是有差异的:
- 调用静态方法,在调用的类中,和实现静态方法的类,紧密的耦合在一起。同事,静态方法的使用方法是”通过类名.方法名“的方式来使用,没有了类的特性。
- 单例方法,从本质上来说,和静态方法一样,都只创建了一个类的实例。但是其使用,是和普通类的使用一样,先获取该类的实例,然后去操作类中的方法。一般是通过 "类名.getInstance()“开获取一个类的实例。单例模式,可以理解为是在静态方法和普通类的使用之间的一种平衡状态。单例模式,使用了一个私有的构造函数,保证一个类只存在一个实例。 单例模式,仍然依赖于调用他的类,二者紧密耦合在一起。
从以上2点可以看出,无论调用者无论是调用静态方法和单例方法,二者之间都是紧密耦合在一起。要解决这个问题,就只能使用工厂方法,来解决这个问题。