LINUX.ORG.RU

История изменений

Исправление da17, (текущая версия) :

И в этом нет ничего хорошего. Между классами Engine и Car >получается тесная связь. Мало того, что Car зависит от публичного >интерфейса Engine, так он ещё и привязан к конкретной реализации >этого класса. Например ты не сможешь заменить бензиновый >двигатель электродвигателем, просто подсунув его в конструкторе. >Т.е. такой дизайн ограничивает гибкость твоего приложения. Или, >например, подсунуть Car-у какой-то тестовый Engine, чтобы >протестировать Car не тратя бензин (конечно аналогии так себе, >но, думаю, уловить можно).

Ок, спасибо, согласен с этим на все 100%, но если я четко знаю, что мне нужно. Получается, что это сам подход такой, когда не знаешь куда тебя дальше забросит проект, но если все высчитано, получается ведь избыточность некая.

А что значит «проект небольшой»? У меня пока где-то 6 000 строк кода без учета тестов

Исходная версия da17, :

И в этом нет ничего хорошего. Между классами Engine и Car >получается тесная связь. Мало того, что Car зависит от публичного >интерфейса Engine, так он ещё и привязан к конкретной реализации >этого класса. Например ты не сможешь заменить бензиновый >двигатель электродвигателем, просто подсунув его в конструкторе. >Т.е. такой дизайн ограничивает гибкость твоего приложения. Или, >например, подсунуть Car-у какой-то тестовый Engine, чтобы >протестировать Car не тратя бензин (конечно аналогии так себе, >но, думаю, уловить можно).

Ок, спасибо, согласен с этим на все 100%, но если я четко знаю, что мне нужно. Получается, что это сам подход такой, когда не знаешь куда тебя дальше забросит проект, но если все высчитано, получается ведь избыточность некая.