Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UML.doc
Скачиваний:
7
Добавлен:
16.11.2019
Размер:
8.2 Mб
Скачать

2.5.1.5. Работа с атрибутами

Атрибут— это фрагмент информации, связанный с классом.

Существует множество источников, где можно найти атрибуты. Для начала взгляните на описание ва­рианта использования. Ищите имена существительные в потоке событий. Некоторые из них будут классами или объектами, другие — действующими лицами, и, наконец, последняя группа — атрибута­ми.

Атрибуты можно также выявить, изучая документацию, описывающую требования к системе. Ищите такие требования, которые определяют собираемые системой данные. Любой элемент соби­раемой информации может быть атрибутом класса.

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

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

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

Определив атрибуты, внимательно соотнесите их с соответствующими классами. Атрибут должен соответствовать назначению класса.

Обратите внимание на классы, у которых слишком много атрибутов. Возможно, такой класс следу­ет разделить на два меньших. Так, класс с 10-ью или 15-ью атрибутами может быть вполне приемле­мым — только убедитесь, что все его атрибуты нужны и действительно должны принадлежать этому классу. Также обратите внимание на классы, у которых слишком мало атрибутов. Вполне возможно, что все нормально — например, управляющий класс имеет мало атрибутов. Однако это может быть и при­знаком необходимости в объединении нескольких классов.

Иногда могут возникнуть сомнения, соответствует ли обнаруженная вами информация атрибуту или классу. Рассмотрим, например, такой атрибут, как название компании. Является ли он атрибутом класса Person (Человек), или лучше создать отдельный класс Company (Компания)? Ответ зависит оттого, какое приложение вы пишете. Если вы собираете сведения о компании и имеется связанное с ней поведение, она может быть классом. Допустим, что вы проектируете систему работы с заказчика­ми. В таком случае может потребоваться информация о компаниях, которым вы поставляете товары или услуги. Вам нужно знать, сколько сотрудников работает в компании, ее имя и адрес, контактный телефон и т.д.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]