<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Javadream

    A long way and a dream.

    面向對象還是面向過程?

    Posted on 2006-07-15 08:57 oxl 閱讀(230) 評論(0)  編輯  收藏 所屬分類: 生活之途技術感語

    如果有用java開發Web的人都會或多或少地懷疑自己是否真的用到了面向對象的理論和方法,又或者認為這是理所當然的方式.呵...多想了吧?
    為什么我會有這樣的感受?因為我一年多來都在想這個問題.

    看看下面的代碼,PHP的:

    function createPerson($name, $sex, $age) {
    ?$db = getDbConnection();?//get db *cache*
    ?$db->query("insert into person values(NULL, '$name', '$sex', '$age')");
    ?return $db->lastStatus();
    }

    這是純過程的一段程序,只要在其它程序文件中這樣調用:
    if (createPerson("juggler", "man", 25)) {
    ?echo "done.";
    } else {
    ?echo "error.";
    }

    學過C語言的人會很容易接受上面的程序,也很自然,這無非是和我們生活過程一樣,一個一個步驟執行.

    那么Java呢?看看下面的代碼:

    //Person.java
    //a pojo class
    package org.oxl.domain;

    public class Person {
    ?public Person() {}
    ?public setName(String name){//....此處省略}
    ?public getName() {//....此處省略}

    ?//...getter and setter
    }

    //PersonDao
    package org.oxl.dao.implements;

    public class PersonDao implements Daobase {
    ?public create(Person member) {
    ??String name = member.getName();
    ??String sex = member.getSex();
    ??String age = member.getAge();

    ??//use jdbc to save it
    ??//or you can use hibernate or use ibatis..
    ?}
    }

    上面是我見到的最常用的java代碼,失血模型,所有的邏輯都在Dao層和Service層搞定,分工合理,只是總覺得不夠OO,可的確這是最快的開發方式.
    其實有一個Person類就是面向對象思想的體現,把世界分為一個又一個的實體,歸類,然后統一他們的動作,而動作的差異由他們自身的數據而定.可是我們再仔細看PersonDao的create方法,他的動作是把member扁平化,然后再用jdbc保存,又或者不扁平化,直接用一些ORM或者SQL map工具(其實也是扁平化的過程,只是我們看不到而已),其實和前面所說的那段代碼是沒有區別的,都是面向過程的方式,雖然這個表面上套了一層OO的皮.

    可能會有人說:"其實我是把一些保存數據的邏輯動作挑出來,合成一個邏輯對象,由它專管域對象的邏輯和持久化."是的,我承認這句話的正確性,可是這樣的話,域對象就只剩下setter和getter了,那他就只是一個值對象了,他失去了他應有的權利,那么域對象還有實在的意義嗎?這或許就是什么PO,VO存在的必要吧.

    不想了,這樣的問題永遠沒有結果,也沒有統一的模式.其實失血模型也挺適合我們這些PHP轉JAVA的人,中小型的項目已經足夠用了.

    ---

    一大早給老媽子吵醒,沒法睡了.出來打點東西,又要嘮嘮叨叨,算了,不打了.

    今天回一趟學校,看有沒有插本的信息,看來還得繼續考試(-_-,我不喜歡考試).

    主站蜘蛛池模板: 日韩视频免费在线观看| 人妻仑刮八A级毛片免费看| 成人黄页网站免费观看大全| 亚洲午夜久久影院| 久久一区二区三区免费播放| 亚洲AV永久无码精品成人| 国产午夜精品理论片免费观看| 久久激情亚洲精品无码?V| aa级女人大片喷水视频免费| 国产亚洲AV夜间福利香蕉149| 成人特级毛片69免费观看| 亚洲日本一区二区一本一道 | 久久久无码精品亚洲日韩软件 | 18gay台湾男同亚洲男同| 亚洲人妖女同在线播放| 一区二区在线免费观看| 亚洲视频在线观看网站| 日本免费人成视频在线观看| 亚洲国色天香视频| 国产一级高清免费观看| 无码日韩人妻AV一区免费l| 在线观看亚洲av每日更新 | 免费视频成人片在线观看| 亚洲日韩国产精品无码av| 成年在线网站免费观看无广告| 亚洲精品无码成人片久久不卡| 国产性生交xxxxx免费| 国产免费一级高清淫曰本片 | 女人被免费视频网站| 黄色网址免费在线| 国产亚洲真人做受在线观看| 最近免费2019中文字幕大全| 亚洲AV成人片无码网站| 亚洲综合精品香蕉久久网| 222www免费视频| 在线观看亚洲视频| 亚洲人成电影在在线观看网色| 成人女人A级毛片免费软件 | 成人网站免费大全日韩国产| 久久夜色精品国产噜噜亚洲AV| 四虎成人免费大片在线|