Преимущества использования защищённых членов класса:
- Проще понимать работу класса и находить в нём ошибки. 1 Защищённые члены позволяют анализировать не только сам класс, но и производные классы. 1
- Легче управлять изменениями. 1 Можно убирать приватные члены, не опасаясь, что сломается что-то за пределами редактируемого класса. 1
- Уменьшается количество заявок в bug-трекере. 1 Пользователи не могут «зашиться» на приватные члены, которые в новой версии класса решили убрать или изменить логику их работы. 1
Некоторые недостатки использования защищённых членов класса:
- Открытая передача деталей реализации. 3 Наличие защищённого члена в классе, который передаётся за пределы пакета, представляет собой открытую передачу деталей реализации. 3
- Необходимость обеспечивать поддержку защищённого члена. 3 Защищённый член становится частью внешнего API, и ему нужно обеспечить постоянную поддержку. 3
Таким образом, использование защищённых членов класса имеет свои преимущества и недостатки, и выбор решения зависит от конкретных требований и условий разработки.