Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Топ:
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Интересное:
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Дисциплины:
2020-11-03 | 151 |
5.00
из
|
Заказать работу |
|
|
Проектирование с учетом будущих изменений
при создании объекта явно указывается класс. Привязывает к конкретной реализации, а не к конкретному интерфейсу. Это может осложнить изменение объекта в будущем. Чтобы уйти от такой проблемы, создавайте объекты косвенно. Паттерны проектирования: абстрактная фабрика.
зависимость от конкретных операций. Задавая конкретную операцию, вы ограничиваете себя единственным способом выполнения запроса. Если же не включать запросы в код, то будет проще изменить способ удовлетворения запроса как на этапе компиляции, так и на этапе выполнения. Паттерны проектирования: цепочка обязанностей, команда;
зависимость от аппаратной и программной платформ. Паттерны проектирования: абстрактная фабрика, мост;
зависимость от представления или реализации объекта. Если клиент «знает», как устроен объект, то при изменении объекта может оказаться необходимым изменить и клиента. Сокрытие этой информации от клиентов поможет уберечься от каскада изменений. Паттерны проектирования: абстрактная фабрика, мост, хранитель, заместитель;
Зависимость от алгоритмов. Зависящие от алгоритмов объекты придется переписывать при каждом изменении алгоритма. Паттерны проектирования: итератор, стратегия, шаблонный метод, посетитель;
Сильная связанность. Сильно связанные между собой классы трудно использовать порознь, так как они зависят друг от друга. Паттерны проектирования: абстрактная фабрика, мост, цепочка обязанностей, команда, фасад, наблюдатель;
Расширение функциональности за счет порождения подклассов. Для определения подкласса необходимо ясно представлять себе устройство родительского класса. Кроме того, порождение подклассов ведет к комбинаторному росту числа классов.
|
Неудобства при изменении классов. Иногда нужно модифицировать класс, но делать это неудобно(нет исходного кода, влечёт изменения множества подклассов). Паттерны проектирования: адаптер, декоратор, посетитель.
Концепция программного компонента. Компоненты развертывания.
Понятие программного компонента (ПК) (software component)
В архитектуре ПО ПК (программный модуль) – произвольный и элемент структуры системы, решающий некоторые подзадачи и взаимодействующий с окружением через определенный интерфейс.
На диаграммах UML ПК (единицы сборки) — файлы с кодом, бинарные файлы, какие-либо документы, входящие в состав системы.
Компоненты развертывания – блоки, из которых строится компонентное программное обеспечение.
Компонент развертывания – структурная единица программной системы, обладающая четко определенным интерфейсом. Такой компонент независимо, удален или добавлен в состав некоторой системы, может включаться в состав систем других поставщиков.
Компонентный каркас (component framework)
Состав:
Компонентная модель (component model) – набор правил определения интерфейсов компонентов и их реализаций, а также правил, по которым компоненты работают в системе (регламентирующие жизненный цикл компонента) и взаимодействуют друг с другом
Набор базовых служб (basic services) обеспечивающих например, обнаружение компонентов в среде (сетевой), передачу данных между компонентами (через сетевое взаимодействие)
Примеры:
различные реализации J2EE,
.NET,
CORBA.
Компонентные фреймворки. Компонентная модель.
Структура фреймворка
Основы принципов внедрения зависимостей. Инверсия управления.
Внедрение зависимости.
Внедрение зависимостей — это стиль настройки объекта, при котором поля объекта задаются внешней сущностью. DI — это альтернатива самонастройке объектов.
class ClassA { var classB: ClassB }
Класс ClassA содержит экземпляр класса ClassB, поэтому мы можем сказать, что класс ClassA зависит от класса ClassB. Классу ClassA нужен класс ClassB для корректной работы.
|
Согласно первому подходу з, а во втором подходе мы переместили обработку зависимостей из зависимого класса в пользовательский класс.
Варианты создания:
class ClassA {
var classB: ClassB
fun someMethodOrConstructor() { classB = ClassB() classB.doSomething() }
}
Недостатки
§ когда нам нужно использовать ClassA, мы будем вынуждены использовать и ClassB, и заменить ClassB чем-то другим будет невозможно.
§ ClassA невозможно протестировать
§ СlassA должен знать, как создать ClassC и использовать его для создания ClassB.
class ClassA {
var classB: ClassB
constructor(classB: ClassB){ this.classB = classB }
}
Недостатки
|
|
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!