我见过几个倾向于使用方法注入的框架,例如:
public abstract class MyClass {
/** Create the class here */
protected abstract Prototype createPrototype();
public void doSomething() {
createPrototype().foo();
}
public void doSomethingElse() {
createPrototype().bar();
}
}
他们可能会使用匿名内部类来添加自定义功能/创建您喜欢的对象:
new MyClass() {
createPrototype() {
return prototype;
}
}
然后是其他支持构造函数注入的,例如 guice。
与构造函数注入相比有优势吗,使用方法注入是一种好习惯吗?