Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Образец Information ExpertПроблема. Нужно определить наиболее общий принцип распределения обязанностей между классами. При правильном распределении обязанностей система становится проще для понимания, сопровождения и развития. Кроме того, появляется возможность повторного использования уже разработанных компонентов. Рис. 43. Диаграмма Traceabilities
Решение. Следует назначить обязанность информационному эксперту – классу, у которого имеется информация, требуемая для выполнения обязанности. Следствия. При распределении обязанностей образец Information Expert используется чаще любого другого образца. Большинство сообщений на диаграммах взаимодействий соответствуют данному образцу. В нем определены основные принципы, используемые в объектно-ориентированном анализе и проектировании. Образец Information Expert отражает интуитивно понятный подход. Он заключается в том, что объекты осуществляют действия, связанные с имеющейся у них информацией. Если информация распределена между различными объектами, то при выполнении общей задачи они должны взаимодействовать с помощью сообщений. Образец Information Expert имеет аналогию в реальном мире. Например, в организации обязанности обычно распределяются между служащими, имеющими необходимую для выполнения поставленной задачи информацию. Ответственность за создание отчета о прибыли и убытках должен нести тот из служащих, кто имеет доступ к информации, необходимой для создания такого отчета. Возможно, лучше всего для выполнения этой обязанности подойдет руководитель финансового отдела предприятия. Программные объекты взаимодействуют между собой и обмениваются информацией так же, как люди. Начальник финансового отдела компании может запросить требуемые данные у бухгалтеров, работающих со счетами по дебиторской и кредиторской задолженности, чтобы составить отдельные отчеты по кредиту и дебету. В некоторых ситуациях применение образца Information Expert нежелательно. Например, в системе нужно определить, какой объект должен отвечать за сохранение информации в базе данных. Логическим следствием приведенных выше рассуждений является вывод о том, что каждый объект должен отвечать за сохранение себя в базе данных. Однако при этом возникает проблема перегруженности класса лишними обязанностями, поскольку тогда класс-сущность должен содержать методы обращения к базе данных (должен быть связан с вызовом операторов языка SQL или сервисов JDBC). Тогда этот класс не будет относиться к предметной области. Кроме того, подобные действия будут дублироваться во многих других классах, информация которых подлежит постоянному хранению. Эти проблемы приводят к нарушению основного архитектурного принципа проектирования с разделением основных функций системы на уровни. Разнородные функции не должны реализовываться в одном компоненте. С этой точки зрения класс-сущность не должен отвечать за сохранение информации в базе данных. Основное достоинство образца Information Expert – поддержка инкапсуляции. Для выполнения требуемых задач объекты используют собственные данные. Необходимое поведение системы обеспечивается несколькими классами, содержащими требуемую информацию. Это приводит к определениям классов, которые проще понимать и поддерживать.
|