Amateur Member
|
我個人是在語法學到一個階段之後,才開始有一點感覺的
(從運算子多載那邊吧...)
我覺得OO的主要...步驟吧,是先針對介面寫程式,而不是針對實作。
例如用程序導向(c)寫個印表機,一開始就要把函數的參數規劃好,
不然後期會改的很辛苦,例如print_A4(Data d) 或是 print(Data d,int paper_type)
...之類的細節 (結構化程式設計)
用OOP的話,就是先把印表機切成好幾個小類別,
例如進紙匣、噴墨系統、資料串流...等,
然後規劃他們的互動和結構...
這部份如果規劃的不錯,改天你要寫台雷射印表機時,
只要把噴墨系統拿出來,把碳粉系統放進去,
再改一下外觀就可以了
因為物件和物件之間不會管對方的實作,而是用介面溝通,
譬如說碳粉系統不會管進紙匣是哪一種,反正有紙會送來就對了,
也就是說OOP是在比較抽象的地方來作規劃
也有人把這些常用的、經典的物件結構、互動方式整理出來,
變成一種可以重用的經驗,就叫做design pattern
__________________
動怒不動氣(對不滿的事情表達不悅,但是不讓其過份影響個人情緒),
挑嘴不挑食(對飲食頗有想法但是有得吃就吃)
|