【发布时间】:2019-03-05 23:21:54
【问题描述】:
首先我不得不说我尝试在谷歌上搜索这个问题的答案,但没有答案解释我的疑问。 反正, 我想了解的是以下内容:
public interface Animal{
public void makeSound(int times);
}
这个接口有两种不同的实现:
public class Cat implements Animal{
@Override
public void makeSound(int times){
for(int=0;i<times;i++){
this.meow();
}
}
}
public class Dog implements Animal{
@Override
public void makeSound(int times){
for(int=0;i<times;i++){
this.wolf();
}
}
}
我将使用这些实现,如下例所示:
public class AnimalStateManager {
@Inject
private Animal animal;
public void makeAnimalAct(){
animal.makeSound(100)
}
}
更新 1.1 到帖子
我还有一个使用相同“动物”界面的课程:
public class AnimalMakeSoundOnce {
@Inject
private Animal animal;
public void makeSoundOnce(){
animal.makeSound(1)
}
}
所以我的问题是: 1- 我如何知道要注入 AnimalStateManager 的实现是什么? 2- 如果我想强制“AnimalStateManager”上的“动物”对象成为猫怎么办?
更新 1.1 到帖子 3- 如果我想让 AnimalMakeSoundOnce 使用 Dog 实现而 AnimalStateManager 使用 Cat 实现怎么办?
提前致谢
【问题讨论】:
标签: java oop dependency-injection guice