Fala André, boa pergunta :) Geralmente, o forwardRef é a forma recomendada de resolver dependências circulares. Você continua recebendo as suas dependências pelo construtor e só decora elas com o forwardRef. Já estudei sobre casos extremos de dependência circular que poderiam ser resolvidos com o ModuleRef, mas só vi em teoria. Até onde eu sei, o ModuleRef só seria realmente recomendado se vc estiver resolvendo módulos dinamicamente, ex., quando vc não sabe qual dependência precisa injetar pelo construtor. Mesmo assim, seria legal encapsular o ModuleRef em uma fábrica (design patterns FactoryMethod, AbstractFactory), e receber a fábrica como dependência no construtor. Assim vc manteria o uso do ModuleRef bem contido, bem isolado, sacou?
Conhecimento de qualidade,
Fala Elves, valeu!
O ModuleRef é 'recomendado' para algum caso de referência circular, certo?
Fala André, boa pergunta :)
Geralmente, o forwardRef é a forma recomendada de resolver dependências circulares. Você continua recebendo as suas dependências pelo construtor e só decora elas com o forwardRef. Já estudei sobre casos extremos de dependência circular que poderiam ser resolvidos com o ModuleRef, mas só vi em teoria.
Até onde eu sei, o ModuleRef só seria realmente recomendado se vc estiver resolvendo módulos dinamicamente, ex., quando vc não sabe qual dependência precisa injetar pelo construtor. Mesmo assim, seria legal encapsular o ModuleRef em uma fábrica (design patterns FactoryMethod, AbstractFactory), e receber a fábrica como dependência no construtor. Assim vc manteria o uso do ModuleRef bem contido, bem isolado, sacou?