[請益] 我這樣解釋OOP對嗎?

看板Soft_Job (軟體人)作者 (ge)時間8年前 (2017/11/12 19:50), 8年前編輯推噓23(24151)
留言76則, 35人參與, 8年前最新討論串1/19 (看更多)
以前面試遇到的問題 面試官問我什麼是OOP 當時我覺得我回答不好 我想請問以下 這樣解釋可以嗎? OOP觀念 運用得宜可以將開發時間縮至最短 且觀念正確下 也可讓將來維護人員好維護 在大型系統下效果尤其顯著 譬如今天開發倉庫系統(我隨意舉例實際沒有碰過這種系統) 由上往下分類 譬如有電子類、玩具類 此兩類都還有很多繼續向下的分類... 將電子類、玩具類 設計製作成大致物件 就是讓此兩類的向下分類幾乎都是以此兩物件做為變化繼續修正或增加差異的部份來開發 譬如:電子類 再向下有手機類、電腦類 那將手機類、電腦類會共通的方法、邏輯再加上變數 制作成電子類物件 用電子類物件來小幅修正 完成向下的手機類跟電腦類兩個小差異的部份就行了 照這樣的規則一直向下 就是說 也將手機類跟電腦類 繼續做成物件 供向下分類使用 也就是說你必須在規劃開始時就已經思考好整個系統架構 會由幾個最上層的物件開始向下 一直向下創造物件 讓程式碼進而達到最簡化 但又能完成繁瑣的任務 讓開發人員可以快速開發 將來維護人員也可快速理解維護 所以最上層的物件設置規劃非常重要 關係到整個系統開發的過程 這是我所理解的 請問這樣可以解釋OOP觀念嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.173.252 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1510487425.A.5F4.html ※ 編輯: goooeooo (220.133.173.252), 11/12/2017 19:50:53

11/12 19:53, 8年前 , 1F
完全不行 三句沒講出重點就下一個問題了 誰會聽你廢話
11/12 19:53, 1F

11/12 19:55, 8年前 , 2F
你的回答是PM or Sales常用的表答方式 一整個嘴炮而已
11/12 19:55, 2F

11/12 19:56, 8年前 , 3F
這只有繼承。描述特性的意義最後再舉例就好了。
11/12 19:56, 3F

11/12 19:56, 8年前 , 4F
誰理你屁話一堆 講重點好不好 你到底懂不懂啊
11/12 19:56, 4F

11/12 19:59, 8年前 , 5F
OOP就封裝繼承多型 重點在多型 你的回答充份反應你不懂
11/12 19:59, 5F

11/12 20:00, 8年前 , 6F
開發時間縮至"最"短,我不是很認同,如果是相對
11/12 20:00, 6F

11/12 20:00, 8年前 , 7F
容易維護我比較能接受。
11/12 20:00, 7F

11/12 20:00, 8年前 , 8F
就封裝繼承多型 解釋一下就好了
11/12 20:00, 8F

11/12 20:02, 8年前 , 9F
你還不如把繼承 override等等講一遍
11/12 20:02, 9F

11/12 20:03, 8年前 , 10F
最重要的不是那些屁話,而是怎麼實現OOP的概念
11/12 20:03, 10F

11/12 20:08, 8年前 , 11F
你在背課文喔,挖哩!!!!!
11/12 20:08, 11F
了解 我換個簡短方式 封裝: 譬如計算直角三角形 我只需要知道 我輸入長跟寬長度 會得出斜邊長度 不需要去了解內部公式是怎麼算的(長平方+寬平方=斜邊平方) 繼承: 譬如A物件 定義了100個變數 B物件需要這100個變數再加1個新的變數 B物件去繼承A物件再加上1個新的變數 就完成了 不用再定義一次這100個變數 多型: 就有點類似 Select Case 傳入不同的參數,會執行不同的Case 所以這樣解釋比較好對嗎? ※ 編輯: goooeooo (220.133.173.252), 11/12/2017 20:32:38

11/12 20:28, 8年前 , 12F
如果要最快的話 應該是學設計模式 把OOP用到極致
11/12 20:28, 12F

11/12 20:34, 8年前 , 13F
OOP就是資源再利用 一種回收的概念
11/12 20:34, 13F

11/12 20:42, 8年前 , 14F
我會隨便挑一個open source的專案來解釋他的繼承關係XD
11/12 20:42, 14F

11/12 20:42, 8年前 , 15F
記得重點是如何應用OOP的概念開發
11/12 20:42, 15F

11/12 20:43, 8年前 , 16F
例如繼承一個Image class,衍生出PNG,JPG等等class
11/12 20:43, 16F

11/12 20:43, 8年前 , 17F
共通介面可能是save,load等等,而實作各自不同
11/12 20:43, 17F

11/12 20:44, 8年前 , 18F
盡量往實作面去解釋,舉一些具體的例子
11/12 20:44, 18F

11/12 20:46, 8年前 , 19F
reuse
11/12 20:46, 19F

11/12 20:51, 8年前 , 20F
多形的簡單解釋應該是一個型別物件會在runtime決定behav
11/12 20:51, 20F

11/12 20:51, 8年前 , 21F
ior
11/12 20:51, 21F

11/12 20:54, 8年前 , 22F
封裝繼承多型講一講,鬆散耦合依賴反轉講一講,大概就特
11/12 20:54, 22F

11/12 20:54, 8年前 , 23F
性跟設計思維都講了
11/12 20:54, 23F

11/12 20:56, 8年前 , 24F
縮短工作時間,讓公司減少成本賺更多錢。結束
11/12 20:56, 24F

11/12 21:00, 8年前 , 25F
OOP特性誰都會背 最好是提個SOLID原則如何應用的
11/12 21:00, 25F

11/12 21:21, 8年前 , 26F
用蚵仔煎 蝦仁煎 大阪燒來解釋如何?
11/12 21:21, 26F
封裝: 我只需要知道 先地瓜水 再蛋 再蚵仔 再蔡 翻面 好了 不用去了解他們的化學變化過程 繼承: 用地瓜水物件+蚵仔 或 蝦仁 所以不用分開準備蚵仔專用地瓜水 或蝦仁專用地瓜水 直接一大鍋地瓜水通用 多型: 綜合煎+雙蛋的客製化細部要求 這樣解釋對嗎?

11/12 21:40, 8年前 , 27F
我們用湯圓 麻糬 糰子 大福 元宵 來解釋看看
11/12 21:40, 27F
※ 編輯: goooeooo (220.133.173.252), 11/12/2017 22:19:11

11/12 23:00, 8年前 , 28F
https://goo.gl/sxpRte 可以參考 java 版同串討論啊xd
11/12 23:00, 28F

11/12 23:00, 8年前 , 29F
我覺得這些白話文解釋不錯欸 比課本上好懂多了
11/12 23:00, 29F

11/12 23:31, 8年前 , 30F
既然半夜了 我們用雞排、雞排飯、雞排漢堡來解釋看看
11/12 23:31, 30F

11/12 23:50, 8年前 , 31F
蛋、蛋包飯、蛋包<食物> <=大概這樣
11/12 23:50, 31F

11/13 00:16, 8年前 , 32F
OOP不就是現實世界所有物品縮影的程式化觀念嗎
11/13 00:16, 32F

11/13 01:41, 8年前 , 33F
Bob大叔才吐嘈過用現實物件解釋OOP是一種buzz word XDD
11/13 01:41, 33F

11/13 01:43, 8年前 , 34F
其實應該要看問題是什麼 問題是「什麼是OOP」
11/13 01:43, 34F

11/13 01:43, 8年前 , 35F
還是「OOP有什麼好處」 還有「OOP好的設計跟不好的差在?」
11/13 01:43, 35F

11/13 01:44, 8年前 , 36F
如果單單只是問什麼是OOP 就封裝繼承多型大概就可以了
11/13 01:44, 36F

11/13 01:44, 8年前 , 37F
順便再講一點好處 就是提高程式複用性 和系統分割
11/13 01:44, 37F

11/13 01:45, 8年前 , 38F
最後再深入提 好與不好的設計 就是SOLID和設計模式架構模式
11/13 01:45, 38F

11/13 01:57, 8年前 , 39F
看吧,其實一堆人都不知到,事實就是,搞不好面試官
11/13 01:57, 39F

11/13 01:57, 8年前 , 40F
自己也沒法說的很好
11/13 01:57, 40F

11/13 02:41, 8年前 , 41F
reuse是基本核心,為了reuse才有封裝繼承多型
11/13 02:41, 41F

11/13 03:57, 8年前 , 42F
別人就是不懂才上來問,一樓不知道在兇三小
11/13 03:57, 42F
謝謝你! 不過也好在我有上來問 不然我可能每次都會回答最上面的說法 那我可能被打槍打到死~ 因為我非本科生 所以這種答非所問的情況很常發生 考驗面試官的能力 跟我的能力... ※ 編輯: goooeooo (220.133.173.252), 11/13/2017 08:36:41

11/13 08:51, 8年前 , 43F
原po真是有好學的精神,你一定會越來越強
11/13 08:51, 43F

11/13 09:13, 8年前 , 44F
我倒覺得基本核心是decoupling
11/13 09:13, 44F

11/13 10:28, 8年前 , 45F
封裝 ADT 解釋清楚就可以了吧
11/13 10:28, 45F

11/13 11:10, 8年前 , 46F
封裝繼承多型(基礎概念),reuse與抽象化(用途),SOLID
11/13 11:10, 46F

11/13 11:12, 8年前 , 47F
與DP(設計原則)
11/13 11:12, 47F

11/13 11:15, 8年前 , 48F
講DP就會一併帶到decoupling了
11/13 11:15, 48F

11/13 11:26, 8年前 , 49F
is-a、has-a、uses-a也要理解,才能決定繼承、組合何
11/13 11:26, 49F

11/13 11:26, 8年前 , 50F
時用
11/13 11:26, 50F

11/13 13:10, 8年前 , 51F
我會想跟原po當同事 絕對不會想跟1樓當同事哈哈
11/13 13:10, 51F

11/13 13:13, 8年前 , 52F
我倒是覺得深入淺出的回答才最好 舉例沒錯啊 你覺得
11/13 13:13, 52F

11/13 13:14, 8年前 , 53F
OOP包含多型封裝繼承我Wiki不到嗎?但如果你能舉出
11/13 13:14, 53F

11/13 13:15, 8年前 , 54F
實例 不就代表你已經成功內化這個知識了 好奇難道
11/13 13:15, 54F

11/13 13:15, 8年前 , 55F
OO是抽象概念 很明顯你沒有這個"抽象概念"
11/13 13:15, 55F

11/13 13:15, 8年前 , 56F
面試官會覺得能背出課本內容會好過舉出比喻...
11/13 13:15, 56F

11/13 13:28, 8年前 , 57F
親自設計一個簡單範例是最好方法
11/13 13:28, 57F

11/13 13:28, 8年前 , 58F
當然,範例設計成只用來解釋繼承、封裝、多型是不夠的
11/13 13:28, 58F

11/13 14:56, 8年前 , 59F
重點是在面試這極短時間裡要完整解釋OOP不太可能阿
11/13 14:56, 59F

11/13 14:56, 8年前 , 60F
OOP這題目範圍也是很大的
11/13 14:56, 60F

11/13 16:31, 8年前 , 61F
課文背得很熟 但你的答案套上agile就死掉了
11/13 16:31, 61F

11/13 16:33, 8年前 , 62F
OO就是想辦法reuse而已 封裝繼承多型全部都是reuse的方法
11/13 16:33, 62F

11/13 16:35, 8年前 , 63F
"你必須在規劃開始時就已經思考好整個系統架構"<-- 不可能
11/13 16:35, 63F

11/13 16:37, 8年前 , 64F
綜觀全局 依現狀建立出物件結構 盡可能適應未來的改變
11/13 16:37, 64F

11/13 16:41, 8年前 , 65F
舉例好了 蚵仔煎 客戶可能隨時要換成蝦仁煎 花枝煎
11/13 16:41, 65F

11/13 16:46, 8年前 , 66F
然後店越開越大 可能會變成米其林蚵仔煎 或者 大阪燒
11/13 16:46, 66F

11/13 20:01, 8年前 , 67F
一樓真的不知道在兇啥,我覺的OOP不是一開始就能完全
11/13 20:01, 67F

11/13 20:01, 8年前 , 68F
理解的,要反覆的實作跟思考,樓主也不用在意有人說你
11/13 20:01, 68F

11/13 20:01, 8年前 , 69F
背課文,誰不是這樣過來的呢?建議你可以多看看幾本書
11/13 20:01, 69F

11/13 20:01, 8年前 , 70F
,像最近出的Clean Architecture就很不錯(推坑)
11/13 20:01, 70F

11/14 01:00, 8年前 , 71F
這個沒有絕對的答案,請不要否決他人的熱心回答
11/14 01:00, 71F

11/14 07:54, 8年前 , 72F
兩三句話就能講完的,你在這長篇大論
11/14 07:54, 72F

11/14 08:33, 8年前 , 73F
有人跩到說別人的回答都不及格,就他最厲害
11/14 08:33, 73F

11/14 11:14, 8年前 , 74F
看了整串討論串 都沒人可以說出版眾都滿意的解答
11/14 11:14, 74F

11/15 03:28, 8年前 , 75F
這根本送分題.......................................
11/15 03:28, 75F

11/21 12:38, 8年前 , 76F
樓樓上 #1Q2cj6n9 眾人都推
11/21 12:38, 76F
文章代碼(AID): #1Q23M1Nq (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1Q23M1Nq (Soft_Job)