Re: Закон Деметера на практике
От: Dmitry Dolgopolov  
Дата: 21.02.07 17:36
Оценка: 2 (1)
Здравствуйте, Mikhail Polykovsky, Вы писали:

MP>Но мне вот что непонятно. Если мне в метод, например, передается объект "Машина", у которой надо накачать колеса, как лучше поступить?


Есть несколько вариантов, при которых не нарушается упомянутый закон. Если объект класса Машина умеет обрабатывать сообщение накачатьКолесо(), тогда можно рассмотреть такой вариант:
void Персонал::обслужитьМашину(Машина машина)
{
    машина.накачатьКолесо(переднее-левое);
    машина.накачатьКолесо(переднее-правое);
    машина.накачатьКолесо(заднее-левое);
    машина.накачатьКолесо(заднее-правое);
    ...
}

Однако, если колеса в большинстве случаев качаются все вместе, тогда более подходящий вариант следующий:
void Персонал::обслужитьМашину(Машина машина)
{
    машина.накачатьКолеса();
    ...
}

Выбор, наверное, зависит еще и от возможности исключений в каждом из приведенных методов объекта "машина".
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.