Назад

ⓘ Энциклопедия | Контейнер свойств, шаблон проектирования - Вики ..



Бесплатно и без рекламы
не нужно скачивать или устанавливать

Pino - логическая онлайн игра, в основе которой находится тактика и стратегия. Это ремикс на шахматы, шашки и уголки. Игра развивает воображение, концентрацию внимания, учит решать поставленные задачи, планировать свои действия и логически мыслить. Не важно сколько у вас фишек, главное как они размещены!

интеллектуальная игра онлайн →
                                     

ⓘ Контейнер свойств (шаблон проектирования)

Контейнер свойств - фундаментальный шаблон проектирования, который служит для обеспечения возможности уже построенного и развернутого приложения

                                     

1. Применение

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

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

После создания нескольких объектов MovieImplementation и помещения их в коллекцию было обнаружено, что некоторые фильмы имеют дополнительные атрибуты. Например, один из фильмов может быть ещё не выпущен. Вместо того, чтобы расширять класс, мы можем добавить свойство "releasedate", используя метод SetProperty.

Реализовать контейнер свойств можно или непосредственно в самом классе фильма, или во вспомогательном классе. Вспомогательный класс позволяет вынести реализацию контейнера свойств из класса фильма и использовать его, в случае, если класс фильма реализован внешним поставщиком.

В данным случае отображено использование реализации как своего класса фильма, так и класса от внешнего заказчика, путем наследования и использования вспомогательного класса PropertyContainer. Взаимодействие с объектами реализуется посредствам интерфейса IMovieExtended.

                                     

2. Достоинства

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

                                     

3. Недостатки

При реализации контейнера свойств теряется строгая типизация. Интерфейс класса не полностью описывает содержание и, возможно, потребуется модифицировать интерфейс взаимодействия с классом, чтобы реализовать преимущества, полученные от добавленных атрибутов. Если используется сохранение объектов в базу данных, контейнер свойств требует написать реализацию для передачи данных из контейнера свойств объекта в таблицу. Использование контейнера свойств увеличивает сложность системы, вносит накладные расходы на потребление памяти приложением и частично снижает быстродействие при работе.

Пользователи также искали:

...
Бесплатно и без рекламы
не нужно скачивать или устанавливать

Pino - логическая онлайн игра, в основе которой находится тактика и стратегия. Это ремикс на шахматы, шашки и уголки. Игра развивает воображение, концентрацию внимания, учит решать поставленные задачи, планировать свои действия и логически мыслить. Не важно сколько у вас фишек, главное как они размещены!

интеллектуальная игра онлайн →