ВУЗ:
Рис. 6.4. Диаграмма классов для простой ролевой игры
Отношение IsCurrentlyln представляет связи, существующие между комнатами и игроками, т.е. запись игрока связывается с
комнатой, в которой он в данный момент находится. Числа, указанные на концах линий, представляющих данное отноше-
ние, показывают, что один игрок в конкретный момент времени может быть связан только с одной комнатой. Такая связь
типа "один к одному" отличается от связи "один ко многим", примером которой может служить связь "обучать", когда один
преподаватель ведет на протяжении семестра сразу несколько курсов.
В последние годы был достигнут значительный прогресс в разработке стандартной системы обозначений для представ-
ления элементов в процессе объектно-ориентированного проектирования. Наиболее ярким примером является язык UML
(Unified Modeling Language – унифицированный язык моделирования), представляющий собой унифицированную систему
для представления множества объектно-ориентированных понятий. Обозначения, используемые на рис. 6.4, основаны на
стандартах языка UML.
Связанность модулей. Выше в этой главе модульность была предложена как способ получения управляемого про-
граммного обеспечения. Идея состоит в том, что каждая последующая модификация, вероятнее всего, коснется относительно
небольшого числа модулей, так что в процессе ее выполнения достаточно будет ограничиться рассмотрением только этой
части системы. Данное утверждение, безусловно, основывается на предположении, что внесение изменений в один из моду-
лей не окажет непредвиденного влияния на работу других модулей системы. Соответственно при проектировании модуль-
ной системы задача состоит в обеспечении максимальной независимости отдельных модулей. Однако некоторые взаимосвя-
зи между модулями все-таки необходимы, поскольку данные модули должны образовать согласованно функционирующую
систему. Наличие подобных связей между модулями системы называют связанностью. Следовательно, задача достижения
максимальной независимости модулей соответствует минимизации их связанности.
Связанность модулей системы может существовать в нескольких различных формах. Одна из них – это связанность по
управлению.
В этом случае один модуль передает управление другому так, как это происходит при возврате и передаче управления между
отдельными процедурами в программе. Другая форма – это связанность по данным, т.е. совместное использование одних и
тех же данных несколькими модулями.
Структурная схема, представленная на рис. 6.3, отражает связанность модулей по управлению при процедурном подхо-
де к построению упоминаемой выше ролевой игры. На структурной схеме связанность по данным обычно представляется с
помощью дополнительных стрелок (рис. 6.5). На этой схеме изображено, какие элементы данных передаются модулю при
обращении к предоставляемым им сервисам и какие возвращаются вызывающему модулю при завершении выполнения за-
прошенной функции. В частности, на данной схеме показано, что модуль CoordinateGame при обращении к процедуре
SimulateGreatHall передает ей значение уровня игрока. Обратите внимание, что модуль CoordinateGame, в свою очередь, по-
лучает значение уровня игрока от процедуры InitializeGame. Кроме того, на схеме показано, что когда любой из модулей
имитации помещения обращается с запросом к процедуре UpdateScore, он передает ей данные о количестве очков, уже на-
бранных игроком.
Минимизация связанности по данным является одним из главных преимуществ объектно-ориентированного подхода.
Побудительным мотивом при создании концепции объекта было желание собрать в единый модуль программы, работающие
с определенным элементом данных.
Рис. 6.5. Структурная схема, содержащая сведения
о связанности по данным
Модуль
Coordinate
Game
Модуль
Initialize
Game
Модуль
Simulate
Great Hall
Модуль
Simulate
Dungeon
Модуль
Simulate
Turret
Модуль
Update
Score
Страницы
- « первая
- ‹ предыдущая
- …
- 146
- 147
- 148
- 149
- 150
- …
- следующая ›
- последняя »