Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Образец Information Expert





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

Рис. 43. Диаграмма Traceabilities

 

Решение. Следует назначить обязанность информационному эксперту – классу, у которого имеется информация, требуемая для выполнения обязанности.

Следствия. При распределении обязанностей образец Information Expert используется чаще любого другого образца. Большинство сообщений на диаграммах взаимодействий соответствуют данному образцу. В нем определены основные принципы, используемые в объектно-ориентированном анализе и проектировании. Образец Information Expert отражает интуитивно понятный подход. Он заключается в том, что объекты осуществляют действия, связанные с имеющейся у них информацией. Если информация распределена между различными объектами, то при выполнении общей задачи они должны взаимодействовать с помощью сообщений.

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

В некоторых ситуациях применение образца Information Expert нежелательно. Например, в системе нужно определить, какой объект должен отвечать за сохранение информации в базе данных. Логическим следствием приведенных выше рас­суждений является вывод о том, что каждый объект должен отве­чать за сохранение себя в базе данных. Однако при этом возника­ет проблема перегруженности класса лишними обязанностями, поскольку тогда класс-сущность должен содержать методы обращения к базе данных (должен быть связан с вызовом операторов язы­ка SQL или сервисов JDBC). Тогда этот класс не будет относиться к предметной области. Кроме того, подобные действия будут дублироваться во многих других классах, информация которых под­лежит постоянному хранению.

Эти проблемы приводят к нарушению основного архитек­турного принципа проектирования с разделением основных функций системы на уровни. Разнородные функции не должны реализовываться в одном компоненте. С этой точки зрения класс-сущность не должен отвечать за сохранение информации в базе данных.

Основное достоинство образца Information Expert – поддерж­ка инкапсуляции. Для выполнения требуемых задач объекты ис­пользуют собственные данные. Необходимое поведение системы обеспечивается несколькими классами, содержащими требуемую информацию. Это приводит к определениям классов, которые проще понимать и поддерживать.

 

Date: 2015-12-10; view: 449; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.01 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию