《墨攻》中的一个场面,刘德华所饰演的墨者——革离,到达梁国都成下时候,城上的梁国守军问道:“来者何人?”,刘德华回答:“墨者革离!”
使用Java语言为这个场景“城门叩问”的场景编写剧本。
革离是《墨攻》剧本中一个角色,我们用一个接口(interface)来表示这个角色
GeLi.java
package com.smart.ioc;
public interface GeLi {
void responseAsk(String saying);
}
刘德华是一个饰演的革离的演员,我们一个类(class)来实现(implement)上边的接口
LiuDeHua.java
package com.smart.ioc;
public class LiuDeHua implements GeLi {
public void responseAsk(String saying) {
System.out.println(saying);
}
}
属性注入
接下来用一个类来表示我们墨攻的剧本
MoAttack.java(属性注入方式)
package com.smart.ioc;
public class MoAttack{
private GeLi geli;
// 属性注入
public void setGeli(GeLi geli) {
this.geli = geli;
}
void cityGateAsk() {
geli.responseAsk("墨者革离");
}
}
MoAttack 和 LiuDeHua 实现了解耦,MoAttack 无需关注角色实现类的实例化工作。
通过容器完成依赖关系的注入
在 Spirng 配置文件对以上实例进行配置:
MoAttack-a.xml
<?xml version="1.0" encoding="