Hello,friends!

          loocao

          myJavaWorld

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            13 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks
          這幾天寫程序。突然想起一個(gè)問題。我到底是在寫面向?qū)ο蟮某绦蜻€是面向數(shù)據(jù)的程序。這個(gè)程序的整體設(shè)計(jì)上從數(shù)據(jù)庫開始的。可以說從數(shù)據(jù)庫設(shè)計(jì)完成的那一刻程序就已經(jīng)定型了。DAO層,BIZ業(yè)務(wù)層,ACTION表現(xiàn)層。我不厭其煩地寫著。突然想起了以前學(xué)JAVA的 情景。跟現(xiàn)在完全是兩回事。那寫程序是否需要面向?qū)ο竽亍C嫦驅(qū)ο蟮?意義在哪?
            到現(xiàn)在為止。我寫的很多程序都是從數(shù)據(jù)庫開始設(shè)計(jì)。導(dǎo)致程序過于面向數(shù)據(jù)。以數(shù)據(jù)為中心。而不是對象了。或許有人會(huì)說就是以對象為中心 。但是別忘了。我們在剛學(xué) JAVA的時(shí)候?qū)W的那些。一切皆對象。現(xiàn)在的設(shè)計(jì)。打個(gè)比方。如果有一個(gè)Order(訂單 )類型的。下訂單的時(shí)候訂單狀態(tài)為“新創(chuàng)建”,然后收到貨款就是“已確認(rèn)”。。等等狀態(tài) 。按照我現(xiàn)在的程序框架寫的話就是把轉(zhuǎn)換狀態(tài)的代碼寫在Biz業(yè)務(wù)里去。因?yàn)檫@些是業(yè)務(wù)的 一部分 。但是事實(shí)上,這些本該是Order所應(yīng)該具有的行為,一張訂單。可以改變自身的狀態(tài),在是符合面向?qū)ο蟮脑O(shè)計(jì)的。任何對象都有行為及其屬性,而現(xiàn)在人們用的 Hibernate映射把Entity映射成無行為的對象。我不敢說它錯(cuò)了。但是至少這樣會(huì)使人們不知不覺吧行為放在另一個(gè)對象中 。而這就是所謂的數(shù)據(jù)訪問對象 。說到底。還是以數(shù)據(jù)為中心的思想根深蒂固。從學(xué)J2EE的那一刻起,我就被不斷地傳輸這分層的概念,把數(shù)據(jù)訪問和業(yè)務(wù)流程分開成了每天都必修課,但是其實(shí)只要做有什么好處呢。除了使代碼更加冗余。人們不斷地強(qiáng)調(diào)可維護(hù)。可擴(kuò)展。但是面向?qū)ο蟮脑O(shè)計(jì)不久是更容易理解嗎。更容易理解的東西比任何多余的其他動(dòng)作更容易擴(kuò)展。
           我知道我的想法還不成熟。分層開發(fā)有它的好處所在。比如協(xié)作開發(fā)。更好的可測試性。更好的延展性。但是其實(shí)面向?qū)ο笈c分層開發(fā)并不矛盾。MVC。經(jīng)典的分層模式,其M層并不是被定義成數(shù)據(jù)訪問層。所以在M層有很多可挖掘的面向?qū)ο蟮乃枷搿作為翻譯。V展現(xiàn)出對象的狀態(tài)。
            這次設(shè)計(jì)很失敗 。哈哈 。不過要以此為鑒。不斷提高。。我知道我說的不全是對的。也可能全是錯(cuò)的。。誠心向各位請教 。
          致謝。。



          phyeas 2008-07-21 00:03 發(fā)表評論

          文章來源:http://www.aygfsteel.com/phyeas/archive/2008/07/21/216267.html
          posted on 2008-07-21 00:03 loocao 閱讀(76) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 江永县| 乌苏市| 大城县| 无极县| 澎湖县| 平凉市| 安远县| 邛崃市| 赤峰市| 建始县| 大埔区| 山西省| 柳林县| 六盘水市| 安多县| 舒兰市| 呼伦贝尔市| 库伦旗| 民权县| 金寨县| 仪征市| 清徐县| 壤塘县| 永宁县| 江津市| 六盘水市| 岚皋县| 枝江市| 房产| 淄博市| 察哈| 修水县| 武安市| 韶山市| 土默特左旗| 湖南省| 洛扎县| 天水市| 广德县| 炉霍县| 四川省|