1
如果我们可以确定实例是单例,那么静态方法总是可以转换为实例方法?是对的吗?一个静态方法总是可以转换为一个实例方法吗?
如果我们可以确定实例是单例,那么静态方法总是可以转换为实例方法?是对的吗?一个静态方法总是可以转换为一个实例方法吗?
当然,标记为static
的方法可以转换为实例方法。标记为static
的方法必须是不使用特定于实例的任何状态信息的方法(除非实例作为参数传入)。它们可以作为实例方法重写,并且不依赖特定于实例的状态信息(或者使用this
代替)。
您当然可以这样做,但您可能会破坏调用静态方法的现有代码。特别是如果该方法是公开可见的。
使用静态vs实例方法是一个设计问题,为什么要将静态方法转换为实例方法,如果有理由使其成为静态方法? – Matten 2011-01-20 15:43:51
如果这个实例是一个单例,为什么你打扰?静态类(和静态方法)实际上是单例模式的实现。 – Massif 2011-01-20 15:52:10