Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Uml Book (Rus).doc
Скачиваний:
15
Добавлен:
11.08.2019
Размер:
58.74 Mб
Скачать

Часть II. Основы структурного моделирования Глава 4. Классы

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

Классы используются для составления словаря разрабатываемой системы. Это могут быть абстракции, являющиеся частью предметной области, либо классы, на которые опирается реализация. С их помощью описывают программные, аппарат­ные или чисто концептуальные сущности. (Более сложные аспекты классов рас­сматриваются в главе 9.)

Хорошо структурированные классы характеризуются четкими границами и по­могают формировать сбалансированное распределение обязанностей в системе.

Введение

Моделирование системы предполагает идентификацию сущностей, важных с toi ;

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

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

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

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

М ногие языки программирования непосредственно поддерживают концепцию классов. И это замечательно, поскольку в таком случае создаваемые вами абстрак­ции могут быть непосредственно отображе­ны в конструкциях языка программирова­ния, даже если речь идет об абстракциях непрограммных сущностей типа «покупа­тель», «торговля» или «разговор».

Графическое изображение класса в UML показано на рис. 4.1. Такое обозначение по­зволяет визуализировать абстракцию неза­висимо от конкретного языка программиро­вания и подчеркнуть ее наиболее важные характеристики: имя, атрибуты и операции.

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