<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的人,中小型的項目已經足夠用了.

    ---

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

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

    主站蜘蛛池模板: 99久久人妻精品免费一区| 又硬又粗又长又爽免费看| 99re热精品视频国产免费| 亚洲Av无码精品色午夜| 中文字幕免费在线看线人动作大片| 亚洲精品成人久久久| 人与动性xxxxx免费| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 亚洲综合免费视频| 亚洲人成免费电影| 妻子5免费完整高清电视| 国产色在线|亚洲| 免费无码不卡视频在线观看| 欧洲亚洲综合一区二区三区| 亚洲国产精品一区二区第四页| 免费一级做a爰片久久毛片潮| 国产福利电影一区二区三区,亚洲国模精品一区 | 免费播放特黄特色毛片| 一级免费黄色毛片| 亚洲AV永久无码精品水牛影视| 久久精品成人免费网站| 亚洲国产成人手机在线电影bd | 一个人免费播放在线视频看片| 亚洲精品无码成人AAA片| 久久久精品2019免费观看| 精品亚洲成在人线AV无码| 免费涩涩在线视频网| 一级特级女人18毛片免费视频| 久久精品国产亚洲AV麻豆王友容| 69xx免费观看视频| 美女黄频免费网站| 亚洲M码 欧洲S码SSS222| 久久爰www免费人成| 亚洲中文字幕久久精品蜜桃| 亚洲精品成a人在线观看| **真实毛片免费观看| 色欲aⅴ亚洲情无码AV蜜桃| 久热综合在线亚洲精品| 午夜免费福利影院| 免费观看一区二区三区| 国产成+人+综合+亚洲专|