面向切面编程(Aspect Oriented Programming, AOP)的概念非常简单,它把系统的一些非业务功能(如日志记录、性能监控、事务管理等)从业务代码中剥离出来定义成切面,再把这些切面作为对业务代码的增强。降低了非业务功能对业务代码的侵入,进一步降低了两者的耦合程度。
面向切面编程(Aspect Oriented Programming, AOP)的概念非常简单,它把系统的一些非业务功能(如日志记录、性能监控、事务管理等)从业务代码中剥离出来定义成切面,再把这些切面作为对业务代码的增强。降低了非业务功能对业务代码的侵入,进一步降低了两者的耦合程度。
控制反转(Inversion of Control,IoC)是一种设计原则,它把创建和管理类对象的控制权从调用者转移到框架容器中。事先在框架容器中注册各种类对象,由框架容器统一负责类对象的创建、装配和管理;调用者无须显式创建类对象,只需声明使用即可。在这里,类对象就是服务。IoC进一步实现了各模块之间的解耦,充分体现了技术人在“高内聚、低耦合”设计方向上的不懈追求!
依赖注入(Dependency Injection,DI)是实现IoC的最流行方式,被各大技术框架所采用。
本文详细介绍.NET框架的DI用法,并给出一个Spring框架的DI示例用以对比。
设计模式种类繁多,且许多模式之间存在相似之处,要想熟练掌握并在实际项目中灵活运用,需要在实际项目中不断总结。
本着“从少到多,由多变少”的学习原则,我认为应该以类图为核心,做到三点:①观察类图能快速识别模式;②能在大脑中熟练描绘各种模式的类图;③结合类图,理解设计模式的结构特点和解决问题的思路。
所以,本文集中列举各种设计模式的类图,方便随时回顾理解。