Может ли синглтон весной иметь статические методы? - PullRequest
0 голосов
/ 18 января 2019
Бины типа

Component и Service и большинство других типов бинов по умолчанию одноэлементные.

В одном из моих запросов Pull кода я объявил метод как статический в Component, так как метод не изменял никакие переменные уровня класса.

Мой обозреватель кода указал, что поскольку класс в любом случае является Singleton и будет иметь единственную ссылку, он сказал, что нет необходимости делать метод static, а скорее делать его методом instance.

Каким образом является правильным способом написания кода, поскольку большинство классов в моем приложении - синглтоны?

1 Ответ

0 голосов
/ 18 января 2019

Ваш рецензент, вероятно, прав насчет этого, не имеет смысла объявлять статический метод внутри синглтона; если этот статический метод не является фабричным методом, который возвращает сам экземпляр singleton.

Я мог бы подумать о двух других причинах, чтобы не объявлять статические методы в синглтоне: в некоторых случаях тестирование статических методов сложнее, и вы действительно запутаете вызывающего этот синглтон. Он / она может увидеть, что есть статический метод, и ему трудно понять, почему он был объявлен таким образом, это потребует дополнительных рассуждений, насколько я вижу для такого метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...