Posted on 2006-03-15 16:49
大大毛 閱讀(380)
評論(0) 編輯 收藏 所屬分類:
Spring
看了Spring初探,有一個很小的例子介紹了IOC(控制反轉(zhuǎn))的意義。在學(xué)Spring之前經(jīng)常有看到這個IOC和DI的名詞,不名就里,這才有點(diǎn)感受。這里講的IOC和DI在我看來就是一種接口調(diào)用。跟那個QuickStart的等價工廠模式+參數(shù)讀取的感覺差不多。只不過這些都由框架去完成了,框架雖然并沒有提供什么接口必須實(shí)現(xiàn),但是實(shí)現(xiàn)上是由規(guī)范來定義的,從而降低了侵入性。在此的思考是IOC應(yīng)該是被用于 Action(動作類)之上的,用于搭配那些只關(guān)心業(yè)務(wù)的類。這些類并不需要持有那些持久化的對象,而是由框架在運(yùn)行時指定。這些類需要做的僅僅是開放setter接口,而IOC容器起到一個控制器的使用。
對于書上提到的那個ActionFactory,在其中用到了BeanUtils來進(jìn)行設(shè)值,這一點(diǎn)不是很明白,因?yàn)槿绻怯晒S模式來實(shí)現(xiàn)的話,應(yīng)該是可以在Action中開放setMessage接口的,由工廠類直接設(shè)值注入。而不應(yīng)該由反射機(jī)制來完成,因?yàn)閷τ趯?shí)現(xiàn)Action的那兩個類(UpperAction、LowerAction)來說,其setMessage都是Public接口,這應(yīng)該在Action中抽取出來,靈活性要大一些。這個例子好象是為了IOC而IOC的,一頭霧水
。