Ответы пользователя по тегу SOLID
  • Можете привести пример принципа открытости/закрытости?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Декоратор — декорирующее поведение вынесено в др класс с др названием в рамках одной абстракции (соблюдается интерфейс). Это соблюдается open closed principle.

    Но если Декорирующее поведение помещают в сам исходный класс с if/else — это нарушение принципа.

    Пример: у вас есть бабушка, вы научили систему пенсий работать с этой бабушкой. Но в вашем приложении бабушка нужна одетой в защиту, в маске COVID-19 и с навыком спускаться на лыжах. Если все это поведение будет запихнуто в бабушку — вы нарушите принцип, тк придется бабушку править, а можно сделать декораторы "бабушка с лыжами" и "бабушка с маской" и все это будет все та самая корректная бабушка, которой легко сделать новое изменение новым декоратором, и не надо шатать все старое поведение.

    Декоратор — не единственный верный способ соблюсти, но хорошо иллюстрирует, например отличным способом может быть вычленение какого-то поведения в отдельную абстракцию
    Ответ написан
    Комментировать
  • Является ли хорошей практикой делать интерфейсы даже тогда, когда класс не планируется заменять?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Абстракция зло, но необходимое зло... если нет необходимости, то...
    Ответ написан
    Комментировать