Я бы взял немного времени в этом проекте, чтобы почитать о том, как заниматься объектно-ориентированным программированием. Все, что написано Аланом Каем или Алленом Голубом, - хорошее начало, хотя есть и многие другие, столь же ясные. Пожалуйста, не обращайте внимания на советы о геттерах и сеттерах, имеющих какое-либо отношение к инкапсуляции. Они тоже пропускают внутренние детали. Верно, они немного лучше, чем поля publi c, но вы должны постараться не выдавать состояние полностью. По мере освоения объектно-ориентированного программирования вы обнаружите, что можете избегать геттеров и сеттеров (и не дай бог любые открытые поля) более чем в 90% случаев. В результате ваш код стал лучше, быстрее, более изолированным, более простым в обслуживании и т. Д. c. Для быстрой статьи прочтите это:
https://www.infoworld.com/article/2073723/why-getter-and-setter-methods-are-evil.html
Если у вас нет времени на статью, самое важное, что нужно знать об объектно-ориентированном программировании из эта статья в основном такова:
It's not about objects, it's about conversations, and in those converstations you don't ask an object for its state to do some work, you ask the object with the state to do the work for you.
Алан Кей сказал, что, по его мнению, он ошибся, назвав это объектно-ориентированным программированием. Было бы лучше, если бы это называлось программированием, ориентированным на сообщения. Я согласен.
Попутно Джеймса Гослинга спросили, что он считает своей самой большой ошибкой в Java. Он сказал «классы». Мне потребовалось немного больше времени, чтобы разобраться в деталях этого заявления, но в конце концов я понял, что он был намеренно смешным и совершенно прав.
Джон