Статических методов нужно избежать как можно больше?

При разработке приложения в ООП статических методов нужно избежать как можно больше?

1
задан skaffman 2 June 2010 в 15:20
поделиться

4 ответа

Нет, не должны.

Любой метод, который не работает с экземпляром объекта, должен быть статическим .

Нет смысла требовать экземпляр объекта, если он вам не нужен.

1
ответ дан 3 September 2019 в 00:06
поделиться

На мой взгляд, статические методы проще, чем методы экземпляра, и поэтому их следует использовать как можно чаще.

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

0
ответ дан 3 September 2019 в 00:06
поделиться

Это зависит от обстоятельств - статический метод необходим в языке ООП, таком как Java или C #, если вам действительно просто нужно написать автономную функцию. В этом случае вы можете создать своего рода класс Utility , содержащий различные статические методы.

0
ответ дан 3 September 2019 в 00:06
поделиться

Есть очень специфические случаи, предписывающие их использование, например, передача метода класса в C API, которому нужен указатель функции, или средство для создания определенных паттернов, таких как Singleton. Как правило, вы не захотите использовать их, если нет веской причины.

В других случаях их использование не рекомендуется, поскольку их использование за пределами некоторых ограниченных случаев подразумевает наличие глобальных данных, поскольку они не имеют автоматического доступа к указателю 'this'. Это нарушает принципы ОО, такие как сокрытие данных.

1
ответ дан 3 September 2019 в 00:06
поделиться