在我当前的应用程序中,为了实现观察者模式,我使用了“自制”的Observable类。观察者(实现一个接口)可以听某些事件。何时使用IoC容器注册观察员?
我将越来越多的项目切换到使用IoC容器,但是我没有找到在代码中注册观察者的好地方。
的方法可以做到这一点,我看到的是:
A)注射到观察的观察者。
构造函数不应该做实际工作,但即使使用方法或字段注入,也会将观察者与observable耦合。如果是相反的话,情况也是如此。 B)创建一个可观察的工厂并在那里执行。
在这种情况下,创建observable取决于几个观察者的实现。
C)按工厂创建观察者并在那里执行。
虽然这对我来说似乎是最好的耦合,但对于DRY来说,结果不好。在某些情况下,工厂最终会成为观察者的字段和构造函数的副本,再加上可观察值以及注册的一行代码。
有没有办法以一种干净的方式处理这种注册?如果不是的话,是否有一些令人信服的论据来对其他人采用某种方式?