我有一个类A
,与List<String>
一起使用。但是这个类以外的人都不需要知道它可以和字符串一起工作。但是,我也想提供类应该使用的具体实现List
(通过依赖注入)。依赖注射收藏
A
应该是这样的
public class A {
private ListFactory listFactory; //this gets injected from the outside
public A(ListFactory listFactory) {
this.listFactory = listFactory;
}
public void a() {
List<String> = listFactory.createList();
//...
}
}
而且这样
public class B {
public void b() {
ListFactory factory = new ArrayListFactory(); //we want class A to use ArrayList
A a = new A(factory);
//...
}
}
ListFactory
主叫类B
东西会是由ArrayListFactory
实现创建ArrayList
秒的接口。
精髓: 我不希望B
就不能不提String
地方。而且我也不希望A
在某处不得不提及ArrayList
。
这可能吗? ListFactory
和ArrayListFactory
怎么样?
哇。谢谢!我甚至不知道这种语法。不得不看这个......这正是我想要的 – qollin
不错,我错过了。 –