Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Trofimov_SHPORA.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
458 Кб
Скачать
☆

Билет 29

1. Обосновать необходимость введения паттерна Abstract Factory.

2. Что такое Project Constraints? Таблица степеней своботы project constraints.

1. Abstract factory — порождающий шаблон проектирования, позволяющий изменять поведение системы, варьируя создаваемыми объектами, при этом сохраняя интерфейсы. Он позволяет создавать целые группы взаимосвязанных объектов, которые, будучи созданными одной фабрикой, реализуют общее поведение. Шаблон реализуется созданием абстрактного класса Factory, который представляет собой интерфейс для создания компонентов системы (например, для оконного интерфейса он может создавать окна и кнопки). Затем пишутся наследующиеся от него классы, реализующие этот интерфейс.

Достоинства паттерна Abstract Factory

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

Позволяет быстро настраивать систему на нужное семейство создаваемых объектов. В случае многоплатформенного графического приложения для перехода на новую платформу, то есть для замены графических элементов (кнопок, меню, полос прокрутки) одного стиля другим достаточно создать нужный подкласс абстрактной фабрики. При этом условие невозможности одновременного использования элементов разных стилей для некоторой платформы будет выполнено автоматически.

2. Определение ограничений проекта Project Constraints

Чтобы расставить приоритеты и определить рамки проекта, собирают информацию об ограничениях вашего проекта. Есть три типа ограничений проекта: технологические, ресурсные и физический. Технологические ограничения относятся к последовательности, в которой отдельные виды деятельности проекта должны быть завершены. Например, в строительства дома, заливка фундамента должна происходить перед построением. Ресурсные ограничения связаны с отсутствием адекватных ресурсов. Следствием такого изменения является задержка даты завершения проекта. Физические ограничения вызваны договором или условиями окружающей среды. Например, из-за ограниченности пространства деятельности.

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

Билет 30

  1. Инверсия управления (Inversion of Control, IoC) — важный принцип объектно-ориентированного программирования, используемый для уменьшения связанности в компьютерных программах. Inversion of Control это принцип, в котором поток управления программой инвертирован: вместо програмиста управление забирают на сея внешние источники (frameworks, сервисыб другие компоненты).

Формулировка:

  • Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракции.

  • Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

Одной из реализаций IoC является внедрение зависимостей (англ. Dependency Injection). Dependency Injection используется во многих framework'ах, которые называются IoC контейнерами.

Инверсия управления Шаблон Dependency InjectionDI является одной из форм IoC, где реализаций передаются в объект через конструкторов / сеттеров / услуга вид окна, которое объект будет "зависеть" от того, чтобы вести себя правильно.

Достоинства и недостатки:

DI как правило нельзя использовать для создания абсолютно всех объектов приложения.

DI является заменой для патерна проектирования Abstract Factory.

DI удобно использовать как способ для подмены различных компонент без изменения исходного кода приложения.