вторник, 13 мая 2014 г.

Ссылка. Критический взгляд на принцип инверсии зависимостей

6 комментариев:

  1. «Приведет ли к хорошему дизайну буквальное следование принципу инверсии зависимостей?»
    -- Не приведёт. Как и буквальное следование любому принципу.
    IMHO, хорошим я считаю принцип, которому нужно не следовать, а прибегать к нему по необходимости, если это сулит практические и/или стратегические выгоды.

    «Принцип инверсии зависимостей имеет право на жизнь, более того, он давно и активно используется в большинстве паттернов проектирования. Мы можем защититься от изменений внешнего мира, путем использования наблюдателей; мы можем «абстрагироваться» от конкретной реализации с помощью стратегий; мы можем связать одну иерархию к другой с помощью адаптеров; мы можем оградить изменения одной части системы от другой с помощью фасадов.»
    -- Про наблюдателей сказано очень верно. Надеюсь, через некоторое время добавлю кое-что по-существу. Уже немного осталось, основные тесты уже проходят ;-)

    «Главная цель большинства паттернов проектирования и хорошего дизайна состоит в следующем: спрятать в одном месте изменяемый аспект системы, реализацию которого можно будет изменить позднее, без воздействия на другие составляющие системы.»
    -- У меня в блоге в черновиках лежит пост с темой "Ненавидите ли Вы паттерны так, как ненавижу их я?" :-)
    Любой шаблон ограничен. А паттерны часто проще "изобрести" самому (точнее, вывести их все из общих принципов), чем разобраться в тоннах "макулатуры" о принципах их построения, организации и порядке применения.
    Всё это напоминает 100-страничный "талмуд" сопромата, в котором рассматривается четыре дифференциальных уравнения при массе различных граничных условий :-) /понятно, что я немного утрирую/ Не проще ли диффуры внимательнее изучить? - Так и с "паттернами". Для меня их место, как и UML - иллюстративность. Хорошо, когда собеседник знает о "Стратегии", "Наблюдателе" и "Декораторе". Если не знает - объяснение займёт несколько больше времени. Да и отослать есть к чему. А вот необоснованное применение шаблонов, склонность к шаблонному же мышлению, приводит подчас, к просто гротескным проявлениям...

    ОтветитьУдалить
    Ответы
    1. Согласен. На все 100%

      Я начинаю любить Вас почти как Теплякова :-)

      Особенно вот за это - "Для меня их место, как и UML - иллюстративность. Хорошо, когда собеседник знает о "Стратегии", "Наблюдателе" и "Декораторе". Если не знает - объяснение займёт несколько больше времени. Да и отослать есть к чему. А вот необоснованное применение шаблонов, склонность к шаблонному же мышлению, приводит подчас, к просто гротескным проявлениям..."

      Я ТОЛЬКО сегодня человеку примерно это говорил...

      Удалить
    2. что "паттерны" это просто инструмент, который используется "неосознанно", и вся эта "теория о паттернах" хороша лишь для того, чтобы перейти на "путь осознанности" и на "общий язык".. и не более того...

      Паттерны - НЕ УПРОЩАЮТ и НЕ УСКОРЯЮТ разработку.. Они лишь её систематизируют и позволяют "несколько проще" общаться.. Только и всего...

      Удалить
    3. "А паттерны часто проще "изобрести" самому"

      - именно так...

      А вот "тонны макулатуры" - лишь упрощают "структурирование" и "общение".. Не более того...

      Удалить
    4. "Ненавидите ли Вы паттерны так, как ненавижу их я?"

      -- жду с нетерпением

      Удалить
    5. "Всё это напоминает 100-страничный "талмуд" сопромата"

      -- или электротехники :-) где те же дифуры.. но рассматриваются с "прикладной точки зрения"... с допущениями.. которые далеко не всегда ОБЪЯСНЯЮТСЯ..

      Удалить