Re: [請益] 如何學習物件導向?

看板Soft_Job作者 (小犬)時間8年前 (2015/08/13 12:26), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/9 (看更多)
首先,才接觸OO一個月會有很多疑問是很正常的 至於怎麼突破現在的問題我有幾個想法 根據你的原文,你已經學習過一些OO實作範例 那我會建議你先不要看這些範例了 先看一些理論上,理念上的東西 1. OO是design的問題 怎麼去設計OO program 基本上OO就什麼也不是,程式怎麼寫都可以 但為什麼我們需要OO呢? 因為沒有人有辦法管理各式各樣的錯綜複雜的code " 我們希望藉由帶入物件的理念進入軟體世界 " 物件 會有自己的屬性 外加上 我們給予的限制 會使得程式更好管控 擴充 維護... 屬性指的是 介面 => 掌控 物件行為規範 限制 single responsibility principle,Liskov substitution principle之類的 而OO的principle可以說是較重要的 注重 為什麼要這樣做 達成的好壞處 建議你先從SOLID和GRASP看起 https://en.wikipedia.org/wiki/SOLID_(object-oriented_design) https://en.wikipedia.org/wiki/GRASP_(object-oriented_design) 2. 而你列出的 " 類別、繼承、多載、 多型、介面、委派、抽像 " 這些都算是OO的基礎 我先講一個 其他的你可以再去看其他的書介紹 為什麼要繼承 實作面: 減少code reuse (但其實call其他程式庫就好了) 沒有OO一樣可以減少code reuse 設計面: 繼承是多型的基礎 基本上你繼承就是為了多型 注重再為什麼 帶來什麼好壞處 實作什麼的晚點再看 3. 設計模式的部分 GOF翻翻就好 pattern就是先人留下來的解決方案 聖經GOF還是要讀一下 因為大家都看過,這樣在討論上可以節省很多時間解釋設計 實作就不用太仔細看了(他的實作沒有說很好) 重點在設計和為什麼 也有些文章說看太多設計模式會限制你的程式設計(現階段還不用管) 在這個階段你應該會有一些原來OO的原則 帶來這麼多好處的想法 與基礎OO設計的範例 http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented-ebook/dp/B000SEIBB8 4. 基本上OO是需要一段時間去適應學習的 注重於 analysis 和 design (OOAD) 這部分才是OO的精華與難處 這對你來說有點早 你可以多跟你們SA,SD聊聊 目前你只要遵守OO的基本principle就可以了 OOAD這種事就交給他們吧 http://www.amazon.com/Object-Oriented-Analysis-Design-Applications-3rd-ebook/dp/B004X1D1Q2/ref=sr_1_1?s=digital-text&ie=UTF8&qid=1439439664&sr=1-1&keywords=OOAD 軟體的世界就只是一堆trade-off而已 這樣方便 這樣有利 就這樣做 所以在不同的特性的產品 往往使用不同的開發流程、設計方式、程式語言 千萬不要讓OO變成唯一方案 要知道優弊 自己決定你的設計 ※ 引述《dnabossking (少狂)》之銘言: : 自認邏輯算好,也還算能寫程式 : 在學校真正念過資工相關課程只有C語言和計概 : 雖然非本科生,但QUEUE、STACK、BFS、DFS、 : 最短路徑、HEAP TREE、二元樹、紅黑樹、各種搜尋、排序 : 一些資料結構、演算法都在大四那年開始自學, : 競賽的題目也會常常寫(都是用C) : 一開始是因為想考資工所,後來沒考上理想學校,就直接出來工作啦 : 最近畢業,決定進入軟體業,求職也還算順利 : 本來在金融業IT,待遇福利和發展都還覺得不錯(穩定) : 但實不喜歡他們寫的東西(RPGLE一種古老的語言), : .... (skipped) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.37.74.237 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1439439976.A.2A8.html

08/13 13:22, , 1F
08/13 13:22, 1F
文章代碼(AID): #1Lp1neAe (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1Lp1neAe (Soft_Job)