#java #ооп
Стоит ли в Java void методы помечать как static, если объекты в данном проекте используются для хранения определенного состояния между вызовами метода, которое в свою очередь определяется возвращаемым значением?
Ответы
Ответ 1
Вся статика, как вы наверняка знаете, относится к классу, а не к конкретному экземпляру. С моей точки зрения, методы могут/должны быть статичными, когда они не привязаны к состоянию (например, создание выдержки из текста не предусматривает сохранение каких-либо значений, только анализ входных данных и возврат новых), а свойства - когда они не относятся к состоянию, а нужны для хранения каких-либо относительно постоянных вещей, не относящихся к состоянию (например, логгера). Исходите из семантики, а не из требований сложившейся архитектуры.Ответ 2
void или нет - вообще не имеет значения. Если хранимое состояние единственно - используйте для хранения объект-синглтон и вызывайте методы на нем. Использовать при этом статические методы, которые будут внутренне обращаться к синглтону теоретически возможно, но делать так не нужно. Если возможных носителей состояния много - создавайте экземпляры, храните состояние в каждом и на нем же вызывайте методы. Пример - класс Random. static нужно использовать только в случае, если состояния нет и экземпляр ни по каким иным причинам не нужен.
Комментариев нет:
Отправить комментарий