图一中有4个对象,分别是剧本,剧本导演,剧本角色,角色演员.
那么他们之间的关系是怎么样的呢?导演选择剧本,剧本存在角色,角色决定演员.
注:这边为了代码的整理,使用了lombok的@Data注解,这个注解 会给标识的类自动构建get,set方法以及无参的构造函数等.
/**
* 剧本类
* @author 胖橘
*
*/
@Data
public class Script {
private Integer id;
private Integer scriptName; //剧本名称
}
/**
* 导演类
* @author 胖橘
*
*/
@Data
public class Regisseur {
private Integer id;
private String regisseurName;//导演名字
private Integer scriptId; //剧本id
}
/**
* 角色类
* @author 胖橘
*
*/
@Data
public class Role {
private Integer id;
private String roleName;//角色名称
private Integer scriptId;//剧本id
}
/**
* 演员类
* @author 胖橘
*
*/
@Data
public class Actor {
private Integer id;
private String actorName;//演员名字
private Integer roleId;//角色名字
}
public class Test {
public static void main(String[] args) {
//创建<<知否剧本>>
Script script=new Script();
script.setId(1);
script.setScriptName("知否");
//创建剧本中的女主角明兰
Role role=new Role();
role.setId(1);
role.setRoleName("明兰");
role.setScriptId(1);
//创建想拍这部剧本的导演
Regisseur regisseur=new Regisseur();
regisseur.setId(1);
regisseur.setRegisseurName("张开宙");
regisseur.setScriptId(1);
//确定剧本女主角演员
Actor actor=new Actor();
actor.setId(1);
actor.setActorName("赵丽颖");
actor.setRoleId(1);
}
}
我们会发现Test中的例子,控制权是在剧本手中的,导演挑选了剧本,剧本控制了角色,角色控制了演员.
而SpringIOC做的事情 就是控制反转,也就是由导演去决定剧本,导演决定角色,导演去决定谁来演这部剧.
之前在剧本手中的控制,现在就到了导演手中了.这就是控制反转.
以上均摘自于<<精通Spring4.x企业应用开发实战>>