gpt4 book ai didi

java - 任何人都可以清楚地解释为什么 Google Guice 有用吗?

转载 作者:IT老高 更新时间:2023-10-28 20:53:16 25 4
gpt4 key购买 nike

我已经阅读了有关 Google Guice 的信息,并且了解其他依赖注入(inject)方法的一般问题,但是我还没有看到有人在“实践”中使用 Guice 的例子,它的值(value)变得清晰。

我想知道是否有人知道任何此类示例?

最佳答案

使用 Google Guice 简化单元测试只是高级别的优势。有些人甚至可能不会在他们的项目中使用单元测试。人们一直在使用 Spring/Dependency Injection,而不仅仅是用于单元测试。

使用 Google Guice 的低级优势在于应用程序的内聚性,项目中的类之间可以松散耦合。我可以为另一个类提供一个类,而不需要它们相互依赖。

考虑这个例子:

public class A {

}

public class B {
A a = new A();
}

B 类将与 A 类紧密耦合,或者换句话说,它依赖于 A 类的存在。

但是使用 Guice,我可以像这样使其松散耦合:

public class B {
private A a;

@Inject
public B(A a) {
this.a = a;
}
}

B现在松耦合到A,Guice负责提供A的实例而不是B 必须实例化它。有了这个,你可以扩展它以提供 AB 的接口(interface),如果你想对你的应用程序进行单元测试,实现可以是一个 Mock 对象。

话虽如此,我们目前只讨论依赖注入(inject)的好处。除了依赖注入(inject)之外,使用 Google Guice 的好处还有:

  1. Guice 有一个非常干净的构造函数注入(inject)实现。从示例中可以看出,您只需添加 @Inject 注释构造函数。
  2. Guice 也有使用相同注解的 setter Injection。
  3. 话虽如此,与基于 XML 的注入(inject)(如其他 DI 实现)相比,基于注解的注入(inject)是非常干净的方法。
  4. 所有依赖注入(inject)和配置都使用 Java,因此默认情况下可以保证在应用程序中获得类型安全。
  5. Guice 有一个非常轻量级的面向切面编程实现(或者您可以将其称为 AOPAlliance AOP 实现的包装器)。它的好处是它不会生成 stub 或其他任何东西。

这就是它的概述。但是随着您对 Guice 的深入了解,它还有更多的好处。一个简单 现实生活中的例子是,如果您使用 GWT with MVP implementation ,您的 GWT 应用程序中的组件/小部件非常松散耦合,彼此之间没有紧密集成。

关于java - 任何人都可以清楚地解释为什么 Google Guice 有用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1462640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com