Ответы пользователя по тегу Python
  • Что такое property injection?

    @EvgeniiR
    https://github.com/EvgeniiR
    Изменение публичное переменной в которой лежит внедряемый объект. Точнее замена этого объекта.
    a = new A();
    a.logger = new Logger();


    По сути из трех способов предпочтительнее использовать внедрение через конструктор.
    Ответ написан
    Комментировать
  • Конфликтует ли фабричный метод с OCP?

    @EvgeniiR
    https://github.com/EvgeniiR
    Фабричный метод возвращает объекты одного типа, это даже показано в приведенной вами статье.
    То есть, по хорошему, всё что должен знать клиентский код при вызове фабричного метода - объект с каким интерфейсом/экзмепляр какого абстрактного класса должен вернуться.

    Кстати, совет, новички этим частенько грешат - не пытайтесь впихнуть паттерны в код, просто за то что они есть, и не пытайтесь изучить их чтобы улучшить качество своего кода. Это скорее названия наиболее часто повторяющихся мест в разных программах.
    Если интересны паттерны, и вы хотите извлечь из этого пользу - старайтесь найти побольше примеров использования изучаемых на текущий момент, и разобраться почему были выбраны именно они. Вот там будет простор на подумать
    Ответ написан
    Комментировать
  • Как избавиться от вложенных if?

    @EvgeniiR
    https://github.com/EvgeniiR
    if(os.path.exist(a) and os.path.getsize(a) > 100000 and  b<os.path.getsize(a)):
        some_def(a)

    или early return
    if not os.path.exist(a):
        return;
    
    // остальные условия
    Ответ написан
    Комментировать