創作內容

1 GP

物件導向 vs 非物件導向

作者:秋之月│2019-05-26 15:02:38│巴幣:2│人氣:3507
網路開發/程式課程備份文

-----------------------
由於我目前聽過的程式語言, 好像全都是物件導向型的,
不禁好奇, 那何謂非物件導向的語言? 這兩者又有甚麼差異呢?

我這邊稍微查了一下, 可是出現的討論文章專業術語都太多了,
身為新手實在沒能看很懂......
看來看去只能大概理解說, 物件導向語言是比較新的,
目的是為了解決非物件導向的一些麻煩事。
有蠻多人主張說, 與其把物件導向看成是一種技術, 其實他更像是一種思維方式。
也就是換個角度, 去拆解問題, 所以才誕生出物件導向。

(原創) 什麼是物件導向(Object Oriented)?

在這篇文章中, 有實際舉例說明兩者的差異,
可是此篇文章分別使用了C++與C#來做範例, 目前我的能力沒法看很懂

但好像大概念是在講.....
非物件導向, 意思就是功能導向,
所以會先把Function給定義出來, 再利用條件判斷去抓出物件。
產生的缺點就是, 如果要增加新物件時, 前面的Function跟條件判斷全都得重寫。

如果是物件導向的方式來寫程式, 就不需要去改寫前面的程式,
直接加入新物件就好。

例如說, 我現在要list一份清單, 顯示會講外語的成員。
假設現在只有A, B兩人, 一個會英文, 一個會日文,

非物件導向的思考方式將會是......

  • 建立功能, 講英文 { 如何如何 };
  • 建立功能, 講日文 { 如何如何 };
  • 條件判斷, if {} -> Yes, 是A  / No, 是B
  • list, A會講英文, B會講日文

那如果突然多了一個新人C, 他會講法文。
這時候我除了得多寫一個講法文的function之外,
條件判斷也得全部重寫。

可是物件導向就會變成這樣......

  • 建立物件A, { 會講英文 };
  • 建立物件B, { 會講日文 };
  • list, A會講英文, B會講日文;
  • 這時要新增會講法文的C時, 我只要建立C, 描述他就完事了。

在程式規模很小的時候, 看起來沒甚麼差異,
但規模很大的時候, 用非物件導向的思維, 一碰到修改就會改死人。

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4405667
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

1喜歡★jamesnet 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:臨摹練習10... 後一篇:淺拷貝(Shallow ...

追蹤私訊切換新版閱覽

作品資料夾

leo25127更新至1231回
穿越奇幻日常系小說『公爵家的獨生子』更新囉,來看看我們無厘頭的ㄎ一ㄤ少爺怎麼在異世界作威作福吧!看更多我要大聲說昨天19:41


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】