瀏覽單個文章
michelle_lai529
*停權中*
 

加入日期: Dec 2005
文章: 21
引用:
作者booger
我個人是在語法學到一個階段之後,才開始有一點感覺的
(從運算子多載那邊吧...)


我覺得OO的主要...步驟吧,是先針對介面寫程式,而不是針對實作。
例如用程序導向(c)寫個印表機,一開始就要把函數的參數規劃好,
不然後期會改的很辛苦,例如print_A4(Data d) 或是 print(Data d,int paper_type)
...之類的細節 (結構化程式設計)


用OOP的話,就是先把印表機切成好幾個小類別,
例如進紙匣、噴墨系統、資料串流...等,
然後規劃他們的互動和結構...

這部份如果規劃的不錯,改天你要寫台雷射印表機時,
只要把噴墨系統拿出來,把碳粉系統放進去,
再改一下外觀就可以了

因為物件和物件之間不會管對方的實作,而是用介面溝通,
譬如說碳粉系統不會管進紙匣是哪一種,反正有紙會送來就對了,

也就是說OOP是在比較抽象的地方來作規劃

也有人把這些常用的、經典的物件結構、互動方式...

+1
其實物件導向本身的重點已經不在寫程式身上,而是在於設計工具...
解決一個問題需要哪些工具,而工具本身稍加變動,可以讓工具本身變成系統
是設計出工具,並不是創造出工具,依據設計的藍本,在呼叫時才創造出工具
如同該網友所提,想將某些表格書面化,設計一個印表機的類別,並賦予他功能;想像每次需要時,像哈利波特一樣,呼叫某些咒語,印表機即出現在你面前,又大喊"表格列印",印表機隨即印出您想要的表格,當然您也可以喊"圖形列印",或者其他的,一切都在於您怎麼去設計這個印表機咒語...
這就是物件導向的基本觀念,觀念通了,其實物件導向並不那麼深不可測
     
      
舊 2007-09-24, 10:46 AM #41
回應時引用此文章
michelle_lai529離線中