Вирішаю зараз велике завдання 27 рівня. Там нас просять створити клас StatisticManager та зробити його синглтоном. ОК без проблем! Надалі, в інших класах програми мені доводиться викликати методи StatistcManager'а, і тут я починаю стикатися з невеликими дратівливими моментами, доводиться писати посилальну змінну
StatisticManager statisticManager = StatisticManager.getInstance(); statisticManager.method();
або так: StatisticManager.getInstance().method();
Це стільки зайвих літер! Набагато простіше було б зробити клас статичним і писати так: StatisticManager.method();
Думаю, напевно, синглтон у чомусь виграє перед статичним класом? Читаю статтю на Хабре і лише посилюю свої сумніви. Сінглтон як мінімум у цій задачі - надмірний. Поки що для себе бачу тільки одне застосування синглтона - якщо нам потрібно заощадити ресурси і створити об'єкт не відразу, а колись потім, коли він нам знадобиться. В інших випадках статичний клас – саме воно. На хабрі ще щось пишуть про спадкування, але слабко поки що можу собі уявити таку ситуацію, напевно, теж не дуже часто. Якщо я не прав, поправте мене, будь ласка. Просто хочу краще зрозуміти принципи проектування і можливо це допоможе розібратися комусь ще :)
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ