組件/框架設計
侵入式設計引入了框架,對現有的類的結構有影響;即需要實現或繼承某些特定類。
例如: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 面向切面編程。切面,簡單來說來可以理解為一個類,由很多重復代碼形成的類。
切面舉例:事務、日志、權限;