※ 引述《PsMonkey.bbs@ptt.cc (痞子軍團團長)》之銘言:
> ※ 引述《gsj.bbs@bbs.nchu.edu.tw (國王的新衣)》之銘言:
> : 我從來沒有反對抽象化的概念
> : 將某些龐雜的事物化簡為抽象化的概念,的確是有它的好處與需求
> : 問題是將事物抽象化的方式、模型有多種,
> : 那一種才能最符合實際的狀況?或者是人類日常生活的習慣?
> : 就如我以往所強調的:
> : 對稱性很種要
> : 你可以去觀察你的四周,人類社會組織的運作方式
> : 包含你去考駕照、去餐聽吃飯、交女朋友等
> : 不管這些事情有沒有訴之於條文,你可以發現一件事就是
> : 它們都是 "循序化" 的一個過程
> : 我不知道你拿一個與事實狀況不對稱的OO抽象模型來套用它會有什麼好處!
> 我有點不了解了,還請各位大大開示...
> gsj 大大(至少人家 po 字很多)一直說 "循序化"
> 問題是,OO 內部的程式碼還是循序化的,不是嗎?
> 還是我的觀念有錯誤?
> 就算是 OO 的抽象模型,到最後還是循序的執行,不是嗎?
你的觀念沒錯誤, 錯誤的是gsj .
OO本質上還是循序的執行
gsj的誤解大概來自於
1. 一般我們說C是procedural language, c++是Object-oriented language
這個procedural可以解釋為循序的 也可以說是sub-routine(procedure)式的
網路上兩種解釋都找得到. 依據前後文以及C/C++的特性來分析
我相信procedural language的procedural指的是sub-routine/sub function
並不是循序執行的意思 ,
請參考這一篇文章
http://fold6oc.doc.ic.ac.uk/foldoc/foldoc.cgi?procedural+language
這裡procedural 的相反詞是declarative language. 而C++並不是declarative
language
2. gsj 把GUI跟OO全都搞混在一起,MFC/BCB/VB等與OO的關係他大概也搞不太清楚
看到程式沒有void main(),那些event handler也不知道怎麼被呼叫起來的
就以為GUI程式並非循序執行, 連帶著也以為OO非循序執行 .
> : 在我看來根本就是自找麻煩
> : 如果對稱性夠,也不會有這麼多人摸了兩三年還不知道OO在作什麼
> 不扯別的... 就說我親身經歷
> 我以前摸了兩年,才知道 Quick Basic 的 sub 怎麼呼叫
> call by value 跟 call by address 有啥差別
> 身邊也不是沒有唸了四年,還是不會寫程式的人
板上不知道OO在做什麼的除了虛心向學的OO初學者外
也就只剩一些堅持OO無用論/OO書卻有看沒有懂的老鳥了
--
※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ From: NK219-91-72-209.adsl.dynamic.apol.com.tw