Вы, похоже, не уверены в использовании public
, protected
и т. Д. Публичные методы в вашем классе составляют открытый интерфейс вашего класса. Разрабатывая свой класс, вы решаете, какую функциональность вы хотите показать потребителям вашего класса.
Вы должны делать только методы защищенные IMO для полиморфизма. Если вы делаете метод защищенным, чтобы другой класс в пакете мог получить доступ к внутренним объектам и т. Д., То это, вероятно, плохой дизайн класса. Вы должны не сделать метод защищенным только потому, что никакие другие классы не используют его прямо сейчас . Если вам понадобится использовать его из другого класса в будущем, вам придется изменить класс.
Вам не нужно создавать интерфейс, если нет нескольких конкретных классов, реализующих этот интерфейс.
Публичный интерфейс класса должен работать довольно естественно, если вы получите парадигму ООП. Решения должны включать больше о , как , чтобы выставить функцию, чем , что , чтобы выставить.