megakor
@megakor
Go/PHP developer | Вконтакте

Можете привести пример, когда использовать private, а когда protected?

Я вот до конца не могу понять преимущества использования модификатора доступа private вместо protected.
Ведь один из принципов SOLID гласит, что чтобы поменять что-то в классе, не нужно изменять его код - нужно делать это через наследование. Можно ли в таком случае использовать всегда protected?

Можете привести пример, когда лучше использовать private у функций и свойств класса, а когда лучше использовать protected? Можно на любом языке.
  • Вопрос задан
  • 191 просмотр
Решения вопроса 2
Compolomus
@Compolomus Куратор тега PHP
Комполом-быдлокодер
Свойства всегда приватные, исключением может быть например массив конфига с параметрами по умолчанию, чтоб переопределять в наследниках свойство, методы которые описывают интерфейс всегда публичные, защищенные если надо дергать их из наследников, приватные это методы помощники, которые не относятся к интерфейсу и просто что то делают под капотом
Ответ написан
Комментировать
php666
@php666
PHP-макака
Мамкины ответчики, написавшие про то, что везде должен быть private, умных книжек не читали, кроме сухой теории и что-то своё, судя по всему, не разрабатывали.

Класс почти ВСЕГДА должен иметь protected свойства. Ибо они ничем не отличаются от private, но позволяют использовать свойства в классах-наследниках, которые очень часто возникают. И что бы не переписывать код, лучше всегда использовать protected.

Ситуация, когда действительно нужен private-метод или свойство - очень редкое явление.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы