※ 引述《tester.bbs@bbs.csie.ncu.edu.tw (try or test)》之銘言:
> > OO 有非循序特性嗎?
> fun_a 與 fun_b 運作到相同的 a,b,c , 這兩者是有關係的, 因此置於同一個
> class A 之下. 因為, 這裡只有一個 Class Object , 即使是多機也只能擺到
> 其中一機上, 達到 Class Object ID 唯一的要求, 要 invoke class Object
> A 內的 method fun_a 或 fun_b, 這個單一的 Class Object 只會做完一次
> invoking 才會再接受下一個 invoking .
> 目前的 OOPL 不是 CHLL , 所以在 Class Object 內的 method 執行一直都是
> 循序的.
> 但如果分寫兩個 Class 就會有 A1 A2 兩個名稱, 多機的 Distributed
> Object 才有可能會將 A1 A2 分散在不同機器上, 這時候的 invoking 結果就
> 變成 B1.fun_a B2.fun_b 對這個例就變成 B1.a B2.a
其實programming 的思意就按時序做出安排.
做麼事先做, 什麼事後做, 就看編排的人了.
所以凡是programming就是循序而做.
安排時要預計很多變化, 這就是需要假設不同情況下, 做出多個不同的應變的編排.
這些是基本, 無論用什麼模式, 什麼語言都是一樣.
=> programming的基本就是按程序做, 遇變化會執行其他應變程序.
Object-oriented只是模仿現實生活, 一件物件有特性, 狀態和功能.
OO programming之下不會超越programming範圍. 他一樣是按次序執行程序.
一樣是按次序執行各個物件的程序.
=> OO programming也不過是programming
再說到parallel/distributed/cluster programming.
首先, 你上面說的問題, 無論是Object oriented 還是非OO都會遇上.
非OO只不過是放在global space或特定space而已.
你所說的含糊, 只不過是定義程序是有含糊, 是可以定一個更清楚的程序.
令到同時執行的程序, 會做出想要的結果.
分散不同的處理器執行的程序, 總會有作出總結的程序, 這個總程序會等候各個
完成才作出總結. 而不會雜亂無章.
在寫distribute programming時, 對於那些是sharing data, 那些是local copy,
是有清楚規定, 怎去access sharing data, 要不要locking都要考慮.
這並不關乎是不是object-oriented 與否, 而是編者對這類programming理念是否清晰.
--
○ Origin: 新竹教育大學 風之坊﹝bbs.nhcue.edu.tw﹞From: n219077017047.netvigator.com