【问题标题】:Inject vs event in CDICDI 中的注入与事件
【发布时间】:2013-07-02 02:02:30
【问题描述】:

我试图了解在两个不同的 bean 中调用方法的区别。第一种方法是将一个bean注入另一个bean,然后在另一个bean中调用注入bean的方法。第二种方法是使用@observe 并触发一个事件。哪一个更好?

【问题讨论】:

  • 我不知道 cdi,但是 di 是一种技术,observer 应该是一种观察者模式。所以我认为这取决于情况。
  • DI在加载并重新初始化对象时,会自动生成对象并调用post-init方法,而观察依赖于上下文,有时类的实例应该按顺序存在在事件中调用desired方法

标签: java jakarta-ee cdi


【解决方案1】:

第一种方法,注入,更简单,因此更好。它也更容易测试 - 无需设置事件上下文。

第二种方法,事件驱动,更复杂,因为它引入了第三方(事件框架)来协调这两个类。测试也更难(需要更多代码、时间和知识)。

使用注入:它被广泛使用、广泛支持、广泛理解、更简单且易于测试/模拟。

【讨论】:

    【解决方案2】:

    根据您的解释,这两种解决方案在这种情况下都会做同样的事情。如果您需要不止一件事来观察/收听事件,则事件将很有用。还取决于您希望如何构建应用程序。你想使用事件/监听器方法还是更面向对象?

    【讨论】:

    • 一种更“传统”的方式:p
    猜你喜欢
    • 1970-01-01
    • 2013-06-20
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    相关资源
    最近更新 更多