• Он обеспечивает контроль над доступом для записи свойств класса.
  • Он отделяет данные от методов, где они должны быть реализованы.
  • Данные класса инкапсулируются во время инициализации.

Озабоченность
Существует вероятность того, что класс может предоставить свои свойства для манипулирования данными, когда в этом нет необходимости. Например, после выполнения метода конструктора. Поэтому использование этого шаблона проектирования данных закрытого класса может предотвратить эту ненужную манипуляцию.
Класс может иметь изменяемые свойства, и они не могут быть объявлены окончательными. Поэтому этот шаблон проектирования может помочь в одноразовой настройке свойств класса. Основная цель этого паттерна проектирования — защитить состояние класса, скрыв его свойства (данные).

Структура

Давайте разберемся на примере:-

Без использования шаблона проектирования

Свойство секунд, указанное ниже, не должно изменяться после конструктора SecondsConverter(). Видимость уже ограничена их областью действия как частной, но методы класса SecondsConverter, такие как ConvertToHours, все еще могут их изменить. Мы также можем установить свойства классов, поскольку const (или final, или ReadOnly) ограничивает манипулирование ими, но свойства устанавливаются в конструкторе и поэтому не могут быть помечены как таковые.

Использование шаблона проектирования

Дополнительная открытость свойств создает своего рода связь между методами, которые обращаются к этим свойствам. Чтобы уменьшить видимость свойств, реализуйте этот шаблон проектирования.

Заключение
Шаблон проектирования данных закрытого класса помогает снизить уязвимость свойств за счет уменьшения их видимости. Это помогает сократить количество свойств класса, инкапсулируя их в один объект. Это позволяет разработчику удалить доступ для записи к свойствам, которые реализованы для установки только во время построения, даже из методов целевого класса.

Если у вас есть навыки программирования на PHP и вы хотите улучшить свою карьеру в этой области, сертификация PHP от StudySection может помочь вам достичь желаемых целей. StudySection предлагает как начальный, так и экспертный уровень Сертификационных экзаменов по PHP наряду с другими сертификационными экзаменами по программированию.

Первоначально опубликовано на https://studysection.com 22 марта 2022 г.