问题:
解释一下MVC,AOP,IOC和DI
答案:
MVC:model-view-controller的简称,即模型-视图-控制器。前端传过来一个请求,找到对应的控制器接受用户的请求,再调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结果。并通过视图呈现给用户。springmvc,struts2甚至servlet都是MVC的实现。
AOP:Aspect Oriented Programming,即 面向切面编程,是OOP(Object Oriented Programing,面向对象编程)的补充和完善。OOP允许定义从上到下的关系,但并不适合定义从左到右的关系。例如日志、权限、事务等功能。这种分散在各处的无关的代码被称为横切(cross cutting)代码,在OOP设计中,它将导致了大量代码的重复,而不利于各个模块的重用,而AOP将那些影响了多个类的公共行为封装到一个可重用模块,并将其名为"aspect", 即切面,再将切面通过代理织入到业务逻辑代码执行的前后,从而又完成了通用模块和业务逻辑在执行上的耦合。
IoC:inversion of control,即控制反转。把以前由程序员创建和管理对象的权利翻转给spring容器,由spring来负责控制对象的生命周期和对象间的关系,使得程序员集中精力于业务逻辑。动态地向某个对象提供它所需要的其他对象,这一点是通过DI(Dependency Injection, 依赖注入)来实现的,spring就是通过反射来实现注入的。
总而言之,MVC阐述了前后端交互的请求和响应过程;AOP是对OOP的补充和完善,两者都实现了了开闭原则;IoC提供了对象的第三方管理,DI是动态的引入被spring容器管理的对象。
网友评论