轻量级开发的成功秘诀,第 2 部分: 如何减轻容器
2009-11-11 00:00:00 来源:WEB开发网
清单 1. 依赖注入的示例class Speaker {
void speak(String words) {
System.out.println(words);
}
}
class Consumer {
Speaker mySpeaker;
void saySomething() {
mySpeaker.speak("something");
}
}
请注意 Consumer 类。它没有实例化 Speaker 类。有了依赖注入,该工作就由称之为 Container 类(参阅清单 2)的第三方来处理。
清单 2. Container 类class Container {
public static void main(String[] args) {
Speaker speaker=new Speaker();
Consumer consumer=new Consumer();
consumer.speaker = speaker;
consumer.saySomething();
}
}
Container 类实例化了 Speaker 和 Consumer 类。然后 Container 类将 speaker 属性设置为新的 Speaker 类。最后一步表示依赖注入。
接口的强大功能
让我们稍微对该段代码进行重构。构建一个称为 Speaker 的接口和两个不同的实现:一个 Canadian speaker 和一个 Californian speaker。因此,您现在拥有了 Speaker 接口:
interface Speaker {
void speak(String words);
}
CanadianSpeaker 和 CalifornianSpeaker:
class CanadianSpeaker implements Speaker {
public void speak(String words) {
System.out.println(words + ", ay?");
}
}
class CalifornianSpeaker implements Speaker {
public void speak(String words) {
System.out.println("Like, " + words);
}
}
更多精彩
赞助商链接