我目前正在解决27级的一个大问题。在那里我们被要求创建一个 StatisticManager 类并使其成为单例。好的没问题!后来,在程序的其他类中,我必须调用 StatistcManager 的方法,在这里我开始遇到一些烦人的小时刻,我必须编写一个引用变量或像
StatisticManager statisticManager = StatisticManager.getInstance(); statisticManager.method();
这样: StatisticManager.getInstance().method();
这是很多额外的字母!将类设为静态并这样写会容易得多: StatisticManager.method();
我认为单例可能比静态类有一些优势?我读了一篇关于哈布雷的文章,更加坚定了我的疑虑。Singleton,至少在这个任务中,是多余的。到目前为止,我只看到单例的一种用途 - 如果我们需要节省资源并不是立即创建对象,而是稍后需要时创建对象。在其他情况下,静态类就可以了。在哈布雷上,他们也写了一些关于继承的内容,但我几乎无法想象这样的情况,而且可能也不会经常发生。如果我错了,请纠正我。我只是想更好地理解设计原则,也许这会帮助其他人弄清楚:)
GO TO FULL VERSION