實戰系列『影像處理軟體設計』 - [1] 物件導向概述

閱讀時間約 3 分鐘
常見的 C 語言是屬於程序導向中結構化程式設計的概念,採取『自上而下、逐步細化、模組化』的方法,將軟體的複雜度控制在一個範圍內,從而降低軟體發展的複雜度,因此 C 語言成為 20 世紀 70 年代軟體發展的潮流。
隨著硬體的快速發展,業務要求越來越複雜,而且程式設計應用領域越來越廣泛,結構化程式設計的軟體生產力遠跟不上硬體和業務的發展
因為結構化程式設計的方式無法滿足軟體『可擴充性』和『可維護性』的需求,因此物件導向的概念才開始普及。從 C++ 到後來的 Java、C# 把物件導向推向巔峰
和程序導向相比,物件導向的概念更加貼近人類思維的特點,這也是軟體設計的一次重大突破。

一、程序導向簡介

程序導向是一種以『程序』為中心的程式流水線設計概念,其中最中要的就是『完成一件事情的步驟』。這是一種機械式的邏輯,每個階段都有自己的輸入資料、處理單元及輸出資料。
在程序導向中,我們需要將程式分成不同的處理單元,然後設計不同單元該如何銜接,並定義每個單元的輸入及輸出資料類型。
程式設計人員應該都聽過「程式設計 = 演算法 + 資料結構」,這其實就是程序導向的概念,而這種特徵其實和電腦的本質相關,其核心 CPU 處理指令的方式就如同流水線一樣,所以電腦是以程序導向為基石來進行處理。
即使我們使用物件導向語言來進行程式開發,但它最後還是要轉換成 CPU 能執行的指令,依舊屬於程序導向。

二、物件導向簡介

物件導向是一種以『物件』作為中心的程式設計概念,著重在對現實世界的模擬。
跟程序導向不同,物件導向的方法中沒有主要控制的角色,也不需要指定嚴謹的操作順序,而是以物件為主體,指定這些物件完成任務,以及這些物件如何對外界的刺激做出反應。
人們大多是按照物件導向的方式進行思考,所以物件導向更加符合人類的思維習慣。
在物件導向的程式設計中,「程式設計 = 物件 + 互動

三、為什麼需要物件導向?

由於程序導向是電腦運行的基石,因此目前 C 語言、作業系統、協定堆疊、驅動程式,依然還是程序導向的天下
但程序導向有著先天性的不足,那就是流程和結構相對固定,雖有效率但其擴充比較麻煩。每次需求的變更,都要對流程的每個步驟、中間的進出的資料結構進行修改。
物件導向是為了解決程序導向的『擴充性』問題而誕生的,因此物件導向的最大特徵就是『可擴充性』。要將變化帶來的影響控制在有限的範圍內,避免產生全流程或大範圍的影響,降低開發上的風險。
因此,經常發生變化的地方就是物件導向的發威之處,常見及可變的主要集中在客戶需求部份,不變的一般都屬於電腦系統的基礎。
作業系統、資料庫及協定等,相對穩定而且要求高效率,因此較適合程序導向;而企業應用、網際網路或遊戲等應用,需求經常變更且功能不斷擴展,適用物件導向的概念。
對效能要求很高的系統軟體,基本上都是利用 C 語言寫的,例如作業系統、驅動程式、嵌入式軟體及網路設備等。

四、物件導向語言不等於物件導向程式設計

C 語言是純粹的程序導向的程式語言,但不代表用 C 語言撰寫程式就是程式導向程式設計,利用 C 語言一樣可以寫出物件導向的程式。
同理, Java 是純粹的物件導向程式語言,但也可以用 Java 寫出程式導向的程式。
程序導向和物件導向都是一種思維方式,它是一種思考問題的方法,和具體的語言沒有必然的關係。
舉例來說,在 Java 中寫程式導向的程式碼,最簡單的方式是撰寫一個大類別,內含很多方法,然後在 main 函式裡面按照程式導向的方式呼叫即可

五、重點摘要

  1. 程序導向是一種「機械的思維」。
  2. 物件導向是一種「人類的思維」。
  3. 物件導向適合解決軟體的「可擴充性」問題。
  4. 物件導向程式語言不等於物件導向程式設計。
閱讀可以用最低的成本來獲得別人經驗,培養閱讀能力,一生受益。但要記住,別只讓自己的大腦永遠處於「輸入狀態」,要適當地「輸出」自己的想法。透過閱讀輸入,再利用寫作輸出,就像「費曼學習法」說的一樣,教授到別人能夠了解,自己才算是領悟了這門學問。
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
【被我們記得的系列】永遠的即時戰略經典--《世紀帝國》系列《世紀帝國》系列   我們這次要討論的系列是著名的即時戰略遊戲《世紀帝國》系列。雖然它遠遠不是最早的即時戰略遊戲,卻是台灣以及世界上許許多多電腦遊戲玩家的童年回憶。也是人們想起即時戰略遊戲時,一定不會錯過的代表性遊戲。就讓我們一起聊聊這款在許多電腦玩家心目中無可取代的有趣作品吧!
Thumbnail
avatar
末梢閱讀筆記
2023-02-23
不再站著借人錢,跪著求人還錢。債權保障系列 / 本票篇:本票債權法律時效拿到本票不等於拿到鐵票,若不小心超過本票債權的請求時效,債務人是可以拒絕清償的。法律不保障在權利上睡著的人,了解本票債權的法律時效,以免將來麥哭無眼屎。 本票債權的消滅時效有多長? 答案是【三年】。 到期日欄位:請參附圖紅色標示1。 發票日欄位:請參附圖紅色標示2。
Thumbnail
avatar
柯俊吉律師 / 法律爭點速記 / 法院人生側寫
2022-09-08
國考短文寫作系列分享(五) 實戰演練與反饋的重要透過有計畫的寫作練習,從看到題目一片空白,到能在幾分鐘內理解題意、建立主要寫作架構,並在預估的時間內完成一篇「不離題」、「段落分明」、「閱讀順暢」,讓閱卷者挑不出明顯大錯的文章,是我們的最終目標。
Thumbnail
avatar
遺我雙鯉魚
2022-08-28
#80日本的時空膠囊系列||銀閣寺的故事(1)-被迫當上CEO的小男孩到打爛京都之戰如果我們說金閣寺象徵著室町時代中,經濟最繁榮、舶來品滿天飛的時期;那麼銀閣寺便象徵著室町時代中,經濟發展最谷底、卻也是現在我們所認知的「日本文化」開始冒出頭的時期。如此與金閣差異甚大的銀閣,究竟是在甚麼樣的時代背景下,又是被誰給創造出來的呢?我們就一起來看看吧。
Thumbnail
avatar
NANA濕婦
2022-03-06
#News 終極戰士系列第五部片名公布 同時宣告將不採院線放映終極戰士系列電影從1987年發展至今,前後推出了四部作品,而在先前才剛宣部第五部作品已經殺青,且在北美將於hulu上發行,根據最新的外媒報導,第五部作品將定名為《Prey》,而北美以外的地區,目前也沒有上映院線的計畫,取而代之的則是在Disney+或Star上來做播映。
Thumbnail
avatar
Jericho
2021-12-23
#47日本的時空膠囊系列||源義經(中)-從戰神淪落為亡命之徒延續上一篇我們聊到了源義經在年少時期到源平合戰之間的故事,這次,我們就來聊聊他在回到京都之後,跟他的老大哥源董吵架,且最終吵到跑路的故事。
Thumbnail
avatar
NANA濕婦
2021-09-21
#36日本的時空膠囊系列||武士的出現(6)-源平合戰後所留下的傳說與景點前面幾集,我們大致上講完了兩間保全公司的激烈戰爭故事,戰爭結束之後,這一篇我們就當作後記,聊聊與源平合戰結束後所留下的謎團與傳說,以及一些相關的景點。希望之後大家實際造訪並看到相關事物的時候,可以回想起這幾集的精采故事,讓旅程回憶更加豐富喔。  
Thumbnail
avatar
NANA濕婦
2021-07-26
#34日本的時空膠囊系列||武士的出現(4)-戰神「源義經」的奇襲源賴朝透過「瓶子倒了」群組號召來各地源氏保全公司的員工,開始與平氏餘黨們展開了你追我跑的一連串戰役。其中,最傳奇的員工不外乎就是源賴朝(源經理)的小老弟「源義經」了。這次我們就來看看他在戰場上到底是多麼不按牌理出牌,又是如何透過奇襲贏得勝利的吧。
Thumbnail
avatar
NANA濕婦
2021-07-16
【專題】時裝解構系列:運動(一):英國足球流氓史中,Fred Perry為何佔一席位?日後,Fred Perry以代表勝利的月桂葉作為標誌創辦了同名服裝品牌,隨即受英國青年青睞,除了和設計本身有關,更重要原因是Fred Perry本人雖然出身基層,卻能反抗上流社會並取得成功,象徵了戰後英國青年對社會的憤慨和叛逆,引起年輕人共鳴
Thumbnail
avatar
REFRACT
2018-09-18
三十分鐘內就懂的系列:兩岸統獨問題之三「時間到底站在哪一邊?」大部分的人,應該都覺得時間在中國那邊,只要中國持續強大,台灣被磁吸進去也是莫可奈何的,不是嗎?當然不是,時間之神從來就不會特別喜歡誰,他只站在有準備的人那一邊。把話說白一點,認為時間在中國那邊的人,大致上都是認同了「台灣怎樣都無力回天」這種想法。
Thumbnail
avatar
王立第二戰研所
2007-12-31