Использование private
имеет несколько хороших моментов - я буду активно его использовать, если мне действительно не понадобится свойство или метод для записи и чтения из нескольких мест.
- Tidyness - Чрезвычайно легко увидеть, какие свойства меняются только в текущем классе, а какие методы вызываются только из текущего класса.
- Только для чтения - Свойства можно сделать доступными только для чтения с помощью частных свойств с открытым геттером.
- Вы можете специально использовать свойства, которые являются частными с геттерами и сеттерами.
Действительно, использование private
для меня дает мне отличный обзор моего приложения. Я легко могу понять, с какими переменными можно смешиваться извне класса, а какие только внутри класса.
Лично, когда я пытаюсь визуализировать свое приложение, я вижу каждый класс в виде круга. У каждого круга есть ветвь, которая представляет свойство или метод, соединяющий все остальные круги, которые имеют к нему доступ. Теперь, когда вы думаете об этом визуале, это будет огромный запутанный беспорядок, если все будет public
.
Я подхожу к своему ООП вот так; вместо создания свойства или метода private
, когда действительно должно быть private
, я создаю свойство или метод public
, только если к реально необходимо получить доступ на протяжении всего приложения. Я даю самый строгий уровень доступа ко всему. т. е. internal
для вещей, которые находятся в том же пакете, protected
для вещей, которые будут изменены только от расширенных классов, private
для вещей, которые затрагиваются только в пределах определенного им класса. Я также активно использую свойство private
с определенным getter
, так что я могу сразу сказать, что свойство будет изменено только в пределах класса, в котором оно содержится, но доступно в других областях.