который решает какую-то проблему. Теперь появились новые требования, и нужно добавить ему функционала. В процессе добавления я осознаю, что мне необходимо много вспомогательного функционала, который слабо связан с изначальным классом. Но при этом мне нужны данные из класса А.
т.е.
class A:
def __init__(self):
self.old_attr = ...
def old_meth(...): ...
def new_meth(...): ...
# usage of self.old_attr
я превращаю в
class B:
def new_meth(...): ...
class A:
def __init__(self):
self.old_attr = ...
self.b = B(self)
def old_meth(...): ...
def new_meth(...): ...
# call to self.b.new_method(...)
Насколько вообще уместен такой подход? Меня первое что смущает это циклическая зависимость, но хз
Посмотри паттерн "Декоратор". Добавляет новую функциональность не изменяя старую, при этом есть доступ к классу
Логично. Спасибо большое
Имеешь ввиду циклические ссылки, а не циклическую зависимость?
Да. В контексте пайтона так корректнее будет.
Попробуй выделить третью сущность, которая будет и в A и B использоваться. Тогда сделаешь B(c) вместо B(self)
Обсуждают сегодня