這里我不是想宣揚(yáng)Spring,其實(shí)這里我只是把Spring作為一個(gè)輕量級(jí)容器的代表,這里所說的輕量級(jí)容易主要針對(duì)IoC容器的方面。
先來看看Framework,現(xiàn)在大家都在談?wù)揊ramework。一個(gè)項(xiàng)目首先可能會(huì)選定技術(shù)架構(gòu),比如選擇J2EE、.Net、PHP+MySql等等,然后才會(huì)選擇某個(gè)技術(shù)架構(gòu)下面的具體的Framework,之后,開發(fā)人員就開始完全按照Framework的要求編碼、測試。這里出現(xiàn)了一個(gè)很嚴(yán)重的問題,就是OO被我們放到什么地方去了?
我們總把OO掛在嘴上,面向?qū)ο蟾杏X像是一個(gè)很顯而易見的東西了。比如用Java(J2EE),你會(huì)說,Java是OO的語言,所以我用Java就一定是在OO。真的是這樣嗎?很多時(shí)候我們選擇了Framework以后,就讓我們的代碼變得面向Framework了(FOP),而不是真正的OO了。也許你學(xué)會(huì)FOP很容易,因?yàn)樗皇且粋€(gè)提高你的效率的東西,一個(gè)工具(這里說工具可能不妥,你或者稱它為基礎(chǔ)設(shè)施);但是如果你學(xué)會(huì)了OO,你就真的成為軟件領(lǐng)域的高手了。我想我這里所說的OO,你不應(yīng)該理解為學(xué)會(huì)和使用OO語言,而是理解為OO的思想。我很佩服Martin Fowler,因?yàn)樗且晃籓O的專家。
也許到這里,你會(huì)發(fā)現(xiàn)我們?cè)谲浖_發(fā)中的一些問題和弊端了。這里我應(yīng)該說Spring了,請(qǐng)把它作為IoC容器的一個(gè)代表。Spring使用起來真的很簡單,所以我們學(xué)會(huì)使用它不能代表什么(我曾經(jīng)也為自己很早的使用Spring 而吹噓過,后來才知道自己有多么的愚蠢)。但是你真正理解了Spring給我們帶來了什么,要求我們做什么以后,也許你會(huì)覺得自己真的差得很遠(yuǎn)。Spring的哲學(xué),設(shè)計(jì)好你的POJO的組件,請(qǐng)記住一定要做到你能達(dá)到的最好的OO,然后將組件注冊(cè)到Spring中。我們不需要去花太多的精力去關(guān)注Spring的使用,而是應(yīng)該把更多的精力關(guān)注如果做好OO的設(shè)計(jì),這也是我非常欣賞Spring的地方。
不管你在用什么,做什么,請(qǐng)不要忘記OO。去看GOF的Design Pattern吧,那才是最絢麗的東西!
posted on 2005-11-22 10:12
JohnLee 閱讀(188)
評(píng)論(0) 編輯 收藏 所屬分類:
Thinking