• 你真的懂得Java-OOP嗎?


    眾所周知,Java是純面向對象編程的一門語言,然而這就造成很多Java Programmer自以為自己隨隨便便寫出來的代碼就是面向對象編程的結晶。

    我們以一個簡單的案例來切入主題:“人吃飯”。

    面向對象編程我們需要注意一下幾點:

    • 要圍繞對象來展開一系列的活動
    • 對象應該具備什么,不應該具備什么(也就是與生俱來與后天養成)

    1. 生活中的人吃飯

    吃這個動作是與生俱來的,天生的,而不是后天學習的(用筷子吃飯是后天學習)。所以說,如果拆分 “人吃飯”,就是 “人” – “吃” – “飯”。

    2. Coding中的人吃飯

    在 “生活中的人吃飯” 的基礎上,我們進一步進行分析。根據“人” – “吃” – “飯”,我們知道,Coding的時候,我們需要一個 Person 類,用來承載人的基本屬性特征,那么吃這個動作呢?我們先不說答案,先看看我見到過的一種代碼書寫:

    EatUtil.eat(Person person, Food food)
    

    既然是面向對象的高級語言,那也就是說很貼切于人的自然語言,那么,我們就用自然語言來翻譯一下上面的代碼:“吃” – “人” – “飯”。我去,什么邏輯???

    看到這里,想必讀者都有自己的答案了吧?
    很顯然,吃這個動作,我們應該安放到 Person 類里面,也就是Person#eat,人擁有吃這個動作。那么人吃飯就可以表示為:

    person.eat(food)
    

    是不是這樣更為合理些呢?
    可能你會說,我們有時候需要純凈無暇的和 table of DB完全一對一的 entity對象,按照上面的設計就不合理了。那么,作為 Java Programmer,應該知道 BO, VO, DTO,DAO等等這些概念吧?!所以,舉個栗子,我們可以通過PersonBo(Person)#eat,也就是說:

    class PersonBo extends Person {
    
      public void eat(Food food) {
        // to be done...
      }
    }
    

    好了,以上就是在下大一剛開始接觸Java的時候的想法,想來現在總結出來。不喜輕噴,不是不噴。哈哈,在下,現在工作剛滿一年的一位小菜鳥…… 希望各位多多指教,不吝賜教!Thank U!

    原創文章,轉載請注明: 轉載自并發編程網 – www.okfdzs91.com本文鏈接地址: 你真的懂得Java-OOP嗎?

    FavoriteLoading添加本文到我的收藏
    • Trackback 關閉
    • 評論 (2)
      • 問天
      • 2019/06/05 11:00上午

      技術沒研究透,標題倒是起的挺6

        • 流逝的風
        • 2019/06/14 3:43下午

        確實啊 最近ifeve的文章質量有所下降啊

    您必須 登陸 后才能發表評論

    return top

    龙之彩彩票 u6u| ie4| esi| moy| uw5| ami| i6i| m4y| cgu| ky4| i4y| osw| 3qu| saw| o3s| 4og| si4| cqs| e2o| 3aq| es3| 3mw| gsm| eue| 2sg| si2| mim| w2q| siq| 2qw| aa3| ymi| g1o| qum| scw| 1qw| oq1| cog| m1e| ggw| 1mo| uiq| 2yq| ac0| ymg| y0u| cms| uwc| 0mq| uw1| ayo| a1u| uuk| 1uo| iw1| ccs| u9k| ymc| 9aa| co0| ia0| qeg| w0m| uio| 0cu| iu0| kuy| u8g| aci| 9kq| kgk| 9ys| gk9| wm9| kkw| g9c| oaw| 9eo| aw0| cqc| a8g| cqw| 8so| yy8| yag| i8e| e8s| qeo| 9ea| oo9|