Design patterns 重载单例类的实例函数
在下面的代码段中,我将传递日志文件的文件名,这是重载实例函数以接受参数的最佳方法。这样做好吗 Logger.GetIntance(“温度日志”) Logger.GetIntance().WriteLog(“程序 启动) 是否有更好的方法来实现相同的目标?Design patterns 重载单例类的实例函数,design-patterns,singleton,Design Patterns,Singleton,在下面的代码段中,我将传递日志文件的文件名,这是重载实例函数以接受参数的最佳方法。这样做好吗 Logger.GetIntance(“温度日志”) Logger.GetIntance().WriteLog(“程序 启动) 是否有更好的方法来实现相同的目标?getInstance()不是实例方法。这是一种静态方法。如果Logger是单例,那么从逻辑上讲,您不能有两种不同的方法来获取同一实例 如果需要初始化单例,那么在类本身中进行初始化。无论如何,它将在一个地方初始化,所以它最好在里面 但是记录器很少
getInstance()
不是实例方法。这是一种静态方法。如果Logger
是单例,那么从逻辑上讲,您不能有两种不同的方法来获取同一实例
如果需要初始化单例,那么在类本身中进行初始化。无论如何,它将在一个地方初始化,所以它最好在里面
但是记录器很少是单例的,
Logger.getInstance(…)
通常返回一个新实例。因此,可以重载它。如果您想遵循设计模式,那么我建议您使用类中的文件名初始化记录器。如果在这段时间内文件名不为人所知(它会改变),那么你是否需要一个单例就成问题了。我认为这不是一个好主意。我以前从未见过这种方法。如果你有一个“SetFileName”函数或什么的话不是更好吗?你能告诉我为什么不能用两种不同的方法来获得同一个实例吗?