Здравствуйте, Igor Trofimov, Вы писали:
iT>Ну, мотивация "это антипаттерн" действительно не очень убедительна.
iT>Кому — паттерн, кому — антипаттерн, тут дело такое
Да, это было действительно моей ошибкой, я предполагал,
что мы оба читали книжки про ООП и говорим на одном языке.
iT>А вот конкретно продемонстрировать практический недостаток существующей архитектуры — надо постараться.
iT>Выпиши конкретные ситуации, проблемы, которые возникали, объяснения их причин.
Ну я предложил одно из описаний, оно выглядело примено так,
есть класс Icon, он отображает себя в виде иконки на панеле задач Desktop Envrioment,
и если окно приложения свернуто, можно двойным щелчком по ней востановить главное окно,
и при этом надо еще сделать действие Х,
это же действие Х надо сделать еще при некоторых событиях,
и каждый раз когда это надо сделать, мы это делаем так
global_pointer_to_app->mainwin->elm1.do1();
global_pointer_to_app->not_mainwin->elm1.do2();
и т.д.
и вот нужно было мне изменть действие X на Y,
пришлось искать и править в куче мест,
и в Icon я это пропустил, т.к. кто бы мог подумать что в Icon есть такой
код, а grep оказался бессильным.
И мне кажется что если бы global_pointer_to_app не был доступен, то
автоматически этот код бы существовал в виде функции в единственном числе
и в классе Application, где ему и место.
А вот моему коллеге кажется, что надо было мне лучше тестировать свои исправления.
iT>Может тогда и удастся прийти (привести?) к тому, что все-таки нужно как-то иначе делать.
iT>Другой вопрос — как именно иначе, но это уже потом.