logo search
Учебное пособие по циклу лабораторных работ Технологии разработки программного обеспечения

Шаблон InformationExpert(информационный эксперт)

Проблема.Каков наиболее общий принцип распределения обязанностей между объектами при объектно-ориентированном проектировании?

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

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

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

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