? ? ? 今天,聽(tīng)別人講了一下關(guān)于基于spring框架的設(shè)計(jì),期間主要講了框架的特性:ioc和aop,即控制反轉(zhuǎn)和面向切面的編程,這是spring的核心所在。

spring
? ? ioc,控制反轉(zhuǎn),依賴(lài)注入作為其特例,其實(shí)和我們上一個(gè)項(xiàng)目中用到的c#的反射機(jī)制很像,依賴(lài)xml配置對(duì)類(lèi)進(jìn)行實(shí)例化,這樣使程序的耦合度降低,提高程序的測(cè)試度和可讀性。
? ? aop,面向切面的編程思維,在程序某處加入切點(diǎn),然后在切點(diǎn)所定義的方法前或者后可以根據(jù)配置要求加入其他的方法,這個(gè)比較經(jīng)典的例子就是程序的日志,通常的做法是每次程序中的一個(gè)方法執(zhí)行完后就要寫(xiě)日志,日志通常是指示程序執(zhí)行是否到位,如果程序方法多的話那就會(huì)實(shí)時(shí)調(diào)用日志,這樣看起來(lái)程序就比較臃腫,不便于閱讀和構(gòu)建,而aop則很好的解決了這個(gè)問(wèn)題,當(dāng)程序需要寫(xiě)日志了,就告訴框架,我需要什么樣的日志,之前還是之后,框架會(huì)自動(dòng)生成日志然后交給你,所有的構(gòu)建日志都是框架完成的。