Re: 今天被問倒了...

看板OOAD作者 (Alien)時間15年前 (2009/07/10 16:04), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/13 (看更多)
※ 引述《Eleganse (王建民)》之銘言: : 補充一下 : 程序導向的程式,會用到許多的"函式", : 函式這種東西,乍看之下可以達成在OO導向中"類別"或是說"類別中的方法"相同的效果, : 但是一個很主要的不同,是函式的撰寫多半是屬於call by value的概念, pass-by-value 與 pass-by-ref, 跟 OOP 沒有關係 : 也就是一大堆數據或文字資料,經由一個函式的服務, : 而輸出另外一大堆的數據或文字資料。 : 當系統的功能慢慢擴增,我們的函式也越來越多, : 整個系統在執行時有那種"資料副本滿天飛"的感覺, 就算寫 C, 很多情況都會傳入指標而不是 copy of data : 就我個人的主觀概念,如果程序導向的程式撰寫時能夠都使用call by referance, : 也就是"指標"的廣用,一部份的程度上,是能夠達成OO導向的好處的。 OOP 的好處根本就不是這... : 但是指標這種東西,在C語言的最新一代C#中,已有遭到棄用的現象, : 指標的使用被當成了unsafe的寫法, : 畢竟直接存取記憶體,對許多程式撰寫師而言, : 實在是沒有必要承受的原罪與風險。 指標不等如直接存取記憶體. 絕絕大部份的指標的應用, 都只是 作為 指往某東西的指標, 這種應用, 與 java/C# 的 reference 概念上無異. : 我猜測一個很大的因素, : 是因為"類別"、"物件"的使用,一部份替代了指標的作用, 類別/物件 與 指標 的使用一點關係都沒有. 也不會因為你 用了物件就替代了指標的使用 : 我們再也不用關心數值資料在函數中來來去去的變化了, : 因為物件的使用,直接達成了"牽一髮而動全身"的效果, 函式稍為寫得好, 你也不會關心數值資料的來去變化. 試問寫 C 的時候, 你在用 time_t mktime(struct tm*) 的時候, 有需要關心傳進的那個 tm struct 的資料來去變化嗎? 我覺得, 你整篇都把某 OOPL (C#/Java?) 的 language feature, 錯誤理解為 OOP 的特性. 所以整篇說的東西都是錯的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.155.236.82
文章代碼(AID): #1ALlOE11 (OOAD)
討論串 (同標題文章)
文章代碼(AID): #1ALlOE11 (OOAD)