С чего бы вам не хотеть какого-либо состояния в вашей программе?
Можете ли вы представить, если бы не было экземпляров String, и все в String было статичным? Как бы вы представили две разные последовательности символов? Теперь примените ту же логику к другому коду.
По сути, ОО-языки построены на идее объектов с состоянием: один экземпляр Book
отличается от другого экземпляра Book
- каждый экземпляр Book
инкапсулирует свое имя, автора, дату публикации и т. Д. Как бы вы смоделировали это, используя только статические методы и без экземпляров?
Конечно, вы могли бы сделать все ваши методы статичными и передать в a Book
в качестве первого параметра в каждом вызове, который должен был использовать состояние. За кулисами что-то вроде этого уже происходит ... за исключением того, что вы потеряли полиморфизм, поэтому интерфейсы, абстрактные классы и т. Д. Бесполезны. Не хорошо.