🕵️
Введение в паттерны
  • Введение в паттерны
  • Паттерны
    • Оглавление
    • Порождающие паттерны
      • Фабричный метод
        • Реализации на С++
        • Реализации на Kotlin
        • Возможные реализации для решения конкретных задач на С++
      • Абстрактная фабрика
        • Реализации на С++
        • Реализации на Kotlin
        • Возможные реализации для решения конкретных задач на С++
      • Прототип
        • Реализации на С++
        • Реализации на Kotlin
        • Реализации на Java
        • Возможные реализации для решения конкретных задач на С++
      • Строитель
        • Реализации на С++
        • Реализации на Kotlin
      • Одиночка
        • Реализации на C++
        • Реализации на Kotlin
        • Возможные реализации для решения конкретных задач на С++
      • Пул объектов
        • Реализации на С++
    • Структурные паттерны
      • Адаптер
        • Реализации на С++
        • Реализации на Kotlin
        • Возможные реализации для решения конкретных задач
      • Декоратор
        • Реализации на С++
        • Реализации на Kotlin
      • Компоновщик
        • Реализации на С++
      • Мост
        • Реализации на С++
      • Заместитель
        • Реализации на С++
        • Реализации на Kotlin
      • Фасад
        • Реализации на С++
      • Приспособленец
        • Реализации на С++
    • Поведенческие паттерны
      • Стратегия
        • Реализации на С++
        • Реализации на Kotlin
      • Команда
        • Реализации на С++
        • Реализации на Kotlin
      • Цепочка обязанностей
        • Реализации на С++
        • Реализации на Kotlin
      • Подписчик-издатель
        • Реализации на С++
        • Реализации на Kotlin
      • Посетитель
        • Реализации на С++
        • Возможные реализации для решения конкретных задач
      • Посредник
        • Реализации на С++
        • Реализации на Kotlin
      • Шаблонный метод
        • Реализации на С++
      • Опекун
        • Реализации на С++
      • Итератор
        • Реализации на С++
        • Реализации на Kotlin
      • Свойство
        • Реализации на С++
        • Возможные реализации для решения конкретных задач
  • Введение в идиомы
  • Идиомы
    • Оглавление
    • RAII
    • Type erasure
      • Контейнеры с type erasure
    • CRTP
    • Статический полиморфизм
    • Shrink to fit
    • Proxy
    • Erase remove
    • Decltype (auto)
    • Copy and swap
    • Safe bool
    • Scope guard
    • Addressof
Powered by GitBook
On this page
  • Назначение
  • Решаемые задачи
  • Преимущества
  • Недостатки
  • Связь с другими паттернами

Was this helpful?

  1. Паттерны
  2. Поведенческие паттерны

Свойство

Property

Назначение

Паттерн свойство (Property) представляет собой объединение двух методов - получения и изменения значения, что позволяет обеспечить сохранение целостности доступа к данным объекта.

Решаемые задачи

  • инкапсуляция данных: паттерн Свойство помогает обеспечить инкапсуляцию данных, скрывая их реализацию и предоставляя контролируемый доступ к ним

  • валидация данных: возможность добавления логики проверки данных на соответствие определенным правилам или условиям в методах, реализующих паттерн Свойство

  • ленивая инициализация: паттерн Свойство может быть использован для реализации ленивой инициализации, при которой инициализация объекта или вычисление значения откладывается до момента его фактического использования

Основная цель ленивой инициализации - избежать необязательных ресурсозатратных операций или вычислений, которые могут быть не нужны до момента использования объекта. Это позволяет повысить производительность и эффективность написанной программы.

Преимущества

  • реализация принципа инкапсуляции

  • обеспечение контроля доступа к данным, которое позволяет избежать ошибок при работе с объектами

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

Недостатки

  • приводит к увеличению количества типового кода, так как для каждого поля объекта требуется создание методов доступа

Связь с другими паттернами

PreviousРеализации на KotlinNextРеализации на С++

Last updated 1 year ago

Was this helpful?

: паттерн Свойство может быть частью реализации паттерна Одиночки. В этом случае свойство, представляющее экземпляр Singleton класса, может быть доступно через геттер и сеттер методы Property.

: паттерн Свойство может использоваться вместе с паттерном Декоратор для добавления дополнительной функциональности к свойству объекта. Декоратор может обернуть объект Свойства и расширить его поведение без изменения самого объекта.

: паттерн Свойство может быть реализован в виде прокси-объекта, который обеспечивает контроль доступа к свойству. Заместитель может добавлять дополнительную логику перед доступом к свойству или ограничивать доступ к нему.

: паттерн Свойство может быть использован в связке с паттерном Adapter для адаптации интерфейса свойства к требуемому интерфейсу.

Одиночка
Декоратор
Заместитель
Адаптер