![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 七嘴八舌異言堂
(https://www.pcdvd.com.tw/forumdisplay.php?f=12)
- - 物件導向是在學什麼??它的定義是??
(https://www.pcdvd.com.tw/showthread.php?t=746868)
|
---|
引用:
+1 其實物件導向本身的重點已經不在寫程式身上,而是在於設計工具... 解決一個問題需要哪些工具,而工具本身稍加變動,可以讓工具本身變成系統 是設計出工具,並不是創造出工具,依據設計的藍本,在呼叫時才創造出工具 如同該網友所提,想將某些表格書面化,設計一個印表機的類別,並賦予他功能;想像每次需要時,像哈利波特一樣,呼叫某些咒語,印表機即出現在你面前,又大喊"表格列印",印表機隨即印出您想要的表格,當然您也可以喊"圖形列印",或者其他的,一切都在於您怎麼去設計這個印表機咒語... 這就是物件導向的基本觀念,觀念通了,其實物件導向並不那麼深不可測 |
引用:
物件是類別的實體化, 所以一體兩面, 一般寫程式比較搞不清楚的是物件的實際運作, 其實多寫就慢慢可以摸出自己的心得了. 話說, 曾有一說學物件導向最好是一開始就學物件導向, 學過太多程序導向的人會比較痛苦. 關於這點我倒是有不少意見, 因為現在的 IDE 太方便了, RAD 中 click 來 click 去寫程式很方便, 程式撰寫的方式很物件導向, 可是學的新手卻學不到物件的精神, 看過很多XX電腦或是XX會培訓出來的, 寫的程式一眼就看得出來沒什麼技巧可言.... :jolin: |
linux kernel己經是物件化的os了,只是是用c寫的而已,
物件導向只是個觀念跟所用語言無關,學到精用assembly都可以寫的很OO BTW: 物件導向的意思只有"用程式語言描述一個物體"這樣而已, 其他的說明只是要讓人更明白而已,但是對多數人來看好像更不明白! 引用:
|
引用:
我是把物件與模組化的定義分開, 兩者之間有交集, 但也有地方並非等號 linux kenel有使用許多物件的觀念, 但卻不算有繼承的這種東西, 封裝也沒做好 (以最後看的2.4 kernel來講) 到底算不算物件OS呢? 有人說是, 但我還是稱之為模組化 |
另外要先把程式語言先學好,
不然就會像你不懂英文要如何用英文描述一件事情. |
封裝沒做好??什麼意思??
繼承是一定必要的嗎? 沒有繼承就不算是物件了嗎? 再說真的沒有繼承嗎?只是寫法不明顯而已吧! 用c是有一定程度上的限制沒瓣法太直觀的. 引用:
|
物件導向的確是用擬人化的手法
企圖將其介面跟實做分離開來 以達成重複使用及解耦合的目的 其中可以建議透過設計樣式來了解物件導向的實做 物件導向往往要透過實作來重複理解其理論跟原則 物件導向只有一些原則,但怎麼運用卻是存乎一心,並無特定公式可言 雖然依SUN官方教材對OO的定議是封裝繼承多型 但我對OO的定義是行為的界定 希望你可以對OO有自己的看法 |
引用:
物件幾個基本要件, 封裝, 繼承, 動態連結, 多型等 要是一部份做到, 一部份沒做到, 那到底算不算物件程式呢? 你要說linux kernel有沾到繼承, 那我也不反對啦, 但距離很完整的繼承那還有相當差距, 同樣的我覺得那叫模組化還比較貼切 linux kernel就連動態連結也不是很完整... 可以去參考用C++寫的TAO之類的東西, 就知什麼叫做99%物件化程式了 |
前文所述, 僅是表達Linux kernel離道地的物件程式還有相當的距離, 但並沒說物件程式就一定比較好, 非物件程式就一定不好
物件化的目的是如何讓程式變得很好寫很好讀, 開發速度很快, 很好維護, 很好達到工作分配等等, 但要是太走火入魔, 用太多物件的技巧, 沒啥人看的懂... 那... 軟體工程與模組化設計才是王道, 根據各種需求使用各種工具與方法 像是將driver寫的很物件, 也不是不能做, 但絕大多才幾十到幾百行程式碼, 加上維護的人大都是電機出身, 這樣做就本末倒置了 |
物件導向程式跟物件導向程式語言兩者是不一樣的,很多語言都可以實做出物件導向程式,只要符合三個精神(封裝、繼承跟多形),而程式語言或是RAD若是稱自己為物件導向,是將物件導向的精神融入該語言或開發環境裡了,讓開發人員可以將精神投入開發而不必擔心元件是否無意間漏掉某環節而出現弱點。
基本上物件導向三個精神根本就是人類的抽象思考模式,將之歸納成三個名詞而已,沒什麼好讓人望之生畏,你時時刻刻腦中都是這樣在思考的,只是自己沒有體會出來而已,「世紀末軟體革命」這本書很適合初學者了解物件導向精神的入門書,請注意是「精神」而不是「語言」,再次強調不要搞錯了,很多講物件導向的書籍常發現一個章節就講完三個精神了,剩下的章節對入門者一點幫助也沒有。 |
所有的時間均為GMT +8。 現在的時間是04:40 AM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2025。