Задачи: путешествие по городу выбранного героя – его реакция на события происходящие в системе: регулирование дорожного движения, регулировка железнодорожного движения, регулирование дня-ночи, регулировка освещения ночью, работа учебных заведений, работа магазинов, жилой сектор, административные здания. События: рассвет, переход дороги, Хи заходит во двор с собаками, Хи попадает под автомобиль, Хи сталкивается с препятствием. Два абстрактных класса: живое, неживое.
Житель, собака… будут наследовать свойства живых сущностей, например, движение.
Солнце, Луна, дома, деревья, светофоры, автомобили… будут наследовать свойства неживых сущностей, например, устойчивость, упругость.
Описывается реакция на взаимодействие жителя Хи с другими сущностями.
Житель: стоять, лежать, сидеть, идти, бежать, грести в воде. - Эти функции являются реакциями на соответствующие события в городе:
- Житель Хи заходит во двор с собаками, реакция – поворот и увеличение скорости.
- Хи сталкивается с другим жителем – реакция различна.
- Заходит Солнце и Хи находится дома, реакция – лежать.
- Восход Солнца и Хи находится дома, реакция – подъем.
- Хи долго движется по городу, реакция – замедление скорости (усталость).
- Хи попадает под авто, реакция – лежать.
- Хи падает в бассен, реакция - грести.
- Хи переходит дорогу на красный, реакция – свисток правоохранителя.
Creator: создает новый объект, из двух при взаимодействии жителя с автотранспортом – управляемый автотранспорт, у него будет свой набор классов, описывающий движение по городу и взаимодействие с другими объектами. - правильно ли будет описывать композиционный объект из двух таких сущностей? Не логично, но кажется удобным.
Контроллер: принимает сигналы от датчиков и отдает их на обработку.
Принцип Low Coupling используется в большей степени при встречи жителя Хи живыми сущностями, так как реакция может быть различной.
Принцип High Cohesion – при встрече с неживыми сущностями, если например Хи сталкивается со стеной – он останавливается(если стена не слишком тонкая, а скорость Хи не слишком большая)).