ioc和aop的作用(ioc和aop的理解)
大家好,我是小十,我来为大家解答以上问题。ioc和aop的作用,ioc和aop的理解很多人还不知道,现在让我们一起来看看吧!
1、 我最喜欢IoC的地方就是它可以把由代码实现的部分转换成XML文件 上例说Invoker.a字段的实例类型该由谁来决定,IoC就可以做到 ApplicationContext ctx = new ClassPathXmlApplicationContext("com/applicationContext.xml"); Invoker.a = (IChild)ctx.getBean("ChildA"); com/applicationContext.xml 的内容包括使用 ChildA 和 ChildB 的方法,代码"ChildA"来充当 Invoker.a 的实例。
2、 别看在这个例子中,IoC的运用还不够实际,但在真正的编程中,你会从这里感觉到很多便利之处(如插件编程即是一例) 然后就是AOP了。
3、AOP是面向切面编程的缩写。
4、一般来说,写程序基本上是纵向,也就是按照流程来操作(包括IF语句,循环语句等都算作是一种流程)。
5、而横向是什么呢?就是除了流程之外要关心的东西,比如“日志”“事务”“持久化”...你说这几个哪一样能插入到流程中,又不影响流程? 然而,很多人在写C++语言代码中,每每遇到函数都不可避免要用到形如 LOG 这样的宏来记录函数进入和离开的日志项,虽说可以插入在流程中来,但不算方便,而且一旦忘了写...更重要的是,每个函数都要写这样的代码,不免会造成一些浪费不是吗? 说白了,AOP的职责就是减少多余的代码,如日志、持久化的多余代码,写那些定式的东西未免太复杂,这样,AOP可以通过代理等方式把日志、持久化等操作统统变成一个模板,只要把方法通过填入 我说的算是一点思想层面的吧^_^,我喜欢用C#编程(我倒觉得C#实现AOP要容易些,它给程序员提供了一种新选择 XML->Attribute),对Java Spring了解的不算多,因此代码我就```呵呵不好意思啊~~。
本文到此讲解完毕了,希望对大家有帮助。