组件/框架设计
侵入式设计引入了框架,对现有的类的结构有影响;即需要实现或继承某些特定类。
例如:Struts框架
非侵入式设计
引入了框架,对现有的类结构没有影响。
例如:Hibernate框架 / Spring框架
控制反转:
Inversion on Control , 控制反转 IOC对象的创建交给外部容器完成,这个就做控制反转.
依赖注入:
dependency injection 处理对象的依赖关系
区别:
控制反转, 解决对象创建的问题 【对象创建交给别人】依赖注入,在创建完对象后, 对象的关系的处理就是依赖注入 【通过set方法依赖注入】
interface IUserService{......
}class xiaomingService implements IUserService{......
}class xiaoliService implements IUserService{......
}class xiaoxiongService implements IUserService{......
}class UserAction{//需要什么,就创建什么。传统的"控制正转"IUserService userService=new xiaoliService();.....
}class UserAction{//对象的创建交给别人,叫【控制反转】private IUserService userService;//传入的userService可以是xiaoming,xiaoli,xiaoxiong//这个过程又是【依赖注入】public IUserService setUserService(IUserService userService){this.userService=userService;}}
AOP 面向切面编程。切面,简单来说来可以理解为一个类,由很多重复代码形成的类。
切面举例:事务、日志、权限;