Если мы можем убедиться, что экземпляр является singleton, то статический метод всегда может быть преобразован в метод экземпляра? Это правильно?Может ли статический метод всегда преобразовываться в метод экземпляра?
1
A
ответ
3
Конечно, метод, обозначенный как static
, может быть преобразован в метод экземпляра. Методы, отмеченные как static
, должны быть методами, которые не используют информацию о состоянии, специфичную для экземпляра (если только экземпляр не передан как параметр). Они могут быть переписаны как методы экземпляра и по-прежнему не полагаются на информацию о состоянии, специфичную для экземпляра (или вместо этого используют).
0
Вы можете сделать это, конечно, но вы можете сломать существующий код, вызывающий статический метод. Особенно, если метод общедоступен.
Использование статических методов экземпляров vs является вопросом дизайна, почему бы один преобразовать статические методы в методы экземпляра, если есть причины, чтобы он был статичным? – Matten
Если экземпляр является синглом, почему вы беспокоитесь? Статический класс (и статические методы) эффективно реализует одноэлементный шаблон. – Massif
Возможно, возникнут некоторые проблемы с производительностью, если вам нужно указать очень сложный класс только для вызова метода (который должен быть статическим), который абсолютно не зависит от какой-либо информации о состоянии. – Matten