序言

光看这个标题,就让人想到了Spring
当创建一个实例时,就将该资源传到构造器中。 Icon 是拼写检查器的一个依赖,在创建 Elvis 时就将 Icon 注入其中。这其实就叫做依赖注入。

  1. public class Elvis {
  2. private final Icon icon;
  3. public Elvis(Icon icon) {
  4. this.icon = icon;
  5. }
  6. }

其实一般可以拿 java8 新提供的 Supplier 来做更便捷。

  1. public class Elvis {
  2. private final Icon icon;
  3. public Elvis(Supplier<Icon> supplier) {
  4. this.icon = supplier.get();
  5. }
  6. public static void main(String[] args) {
  7. Elvis elvis = new Elvis(Icon::new);
  8. }
  9. }

总之呢,这种情况希望多用框架,毕竟做的比较完善。