Sorry
我好像沒有仔細體會 tester 大大所要問的東西
所以回答的方向好像不太一樣
如果造成誤解 敬請見諒 <(_ _)>
※ 引述《tester.bbs@bbs.csie.ncu.edu.tw (try or test)》之銘言:
: > OO 具有封裝性呀
: 封裝是強調不可分割, 有外防的包莢, 事實上她不像 Mornitor 有 kernel
: mode 的保護, 因此她採的策略是 information hidden . 這是她不能隨意
: 使用 pointer 跨 class object 使用莢內資源的原因.
: 保護未必要黑漆漆的, 是因為根本沒有透明的防護罩, 事實上她跟普通程
: 式一樣也沒有特製的防護罩, 只是採用 "不必明說" , 直接指向切入的語
: 法就不支援, 或者很難用.
: > OO 全然沒有推翻循序性
: > OO 是「建立在循序性上」的「程式碼管理哲學」與「工程實務」
: 事實是 "毫不相關的片段 code thread" 本身就能平行, "你走你的陽關道, 我
: 過我的獨木橋", 誰先誰後互不影響, 這是實況. 加上作業系統 multi-process
: 支援或是分散不同地的電腦都能做這種 "無關的平行".
: OOP 可以讓這類片段的 code 與用到的 data 成包莢式的各別獨立顯現,
: 傳統的命令式語言雖然也是可以這樣做, 只是不明顯, 必須刻意的處理.
: 目前 OOP 的語法並沒有相關式平行需要的同步機制, 所以她不是 CHHL ,
: 但她可以適應分散在不同電腦的處理, 在設計思考時, 是不必一定得按特定順
: 序想, 所以會被誤認為可能是任意的非循序式. 若把這種無關的非循序, 擴大
: 成可以在任意相關下也能平行, 那就會越界變成無序.
: 採用訊息傳遞, 把相關的 code , data 封裝在一起就是為了將來能直接用
: 在分散的電腦上執行.
: > OO 的物件為雜亂交錯的 data 與 code 提供了單純而平面化的操作介面
: Class Object 內部的 code , data 甚至 stack 還是分堆擺的, 用了高階語
: 言的 compiler 就會這麼做. Class object 間的界限也不必用到像 process
: 間隔離的 memory protection & separation , 也就不會增加多餘的工作,
: 她靠的是 information hidden .
: > OO 不是在討論程式執行的本質 循序化的執行早已是本然
: > OO 討論的是 data 與 code 的封裝性 物件的責任 物件間的關聯 介面的抽象性 ...
: > 這些東西並不違反任何實體特質
: > 討論的層次有所差異
: > 「程式語言與電腦的實體是不對稱的」? 我們得先思維這個命題是否正確
: > OOP 沒有損害到程式的執行效率
: > 相同的事 要用循序性語言來做 不見得會比較有效率
: > 會慢是來自於 design
: > 你不能說我要讓程式碼受良好管理而不付出任何成本
: 事實上, 好的 OOP implementation 不會讓程式語言與電腦實體呈現不對稱的現
: 像, OO 先天就是能把 相關的 code , data 擺在分開來的同一電腦上. 有從屬
: 關係的 object 會因繼承性而儘量放在可以快速拿得到的地方.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.216.204