![]() |
Где расположить метод ответственный за взаимодействия двух объектов?
Здравствуйте, предположим нужно реализовать посадку водителя в машину. Во время посадки, водителю и машине нужно провести ряд операций, связанных с этим действием: водителю - привести себя в сидячее положение, машине запустить голосовое приветствие, например. Вот только в какой класс добавить метод реализующий это действие? Ведь нехорошо если, например, в классе водителя будет присутствовать код, реализующий поведение машины и наоборот? Как тогда быть? Вынести метод в отдельный класс осуществляющий взаимодействие машины и водителя, оставив в последних только данные без логики?
|
Мне представляется примерно так:
Человек>Предмет>Автомобиль>Войти как водитель. Автомобиль>Взаимодействие с человеком>Водитель>Авторизация объекта как "Водитель" Человек>Сесть на водительское кресло, положить руки на руль. Ну образно... |
Попробуйте написать Car и Driver без логики, просто с переменными состояния,
сделать метод "сестьВМашину" в каком-нибудь CarController, который будет менять состояние car и dirver А уже потом, если появятся разные машины, делайте интерфейс ICar и реализовывайте отличающееся для разных машин поведение. Соответственно код CarController, различающийся для разных машин, будет заменён на вызов методов ICar Это так, один из вариантов. Вдруг поможет выйти из ступора |
| Часовой пояс GMT +4, время: 18:42. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.