轉入OO思維模式 (轉)
從以前或者VB轉來的員,肯定對於OO思維不太熟悉,做起專案來OO思想也是雷聲大雨點小,心裡上沒有真正的適應過程。現在我就借花獻佛,希望能對你有所幫助。
採用OO軟體開發方法的過程中﹐許多人自然而然偏重於技術層面﹐例如﹐使用OO分解(-oriented decomposition) 來進行模組化﹐運用繼承功能來建立類別體系(class hierarchy) 等等。不過﹐偏好於技術者﹐往往會忽略這些技術背後的心理因素﹔也就是OO思維(object-oriented thinking)﹐這是許多人採用OO方法過程中﹐不斷產生挫折感的重要因素。
OO思維是軟體師的心智(mental)運作過程﹐包括對問題(problem)的看法,以及如何藉由對問題的瞭解而匯出解決方案(solution)﹐然後以可的軟體(working system)來表達之。雖然每個人的思維模式並不盡相同﹐但下述各項是OO軟體師的常見思維模式﹕
(1) 實體對應(entity map)
首先專注於瞭解問題領域(problem ain)中的各實體(entity)﹐並認識各實體的結構本質﹐然後對應到軟體中的物件(object)。例如﹐圖書館的購書清單、書本等等。此外還可延伸到其它實體,如出版商、學生課程等。OO軟體師常用心體會這些實體的結構﹐以及有關的資訊﹐然後藉軟體物件表達之﹐成為軟體中的重要(key component) 。
這一點與傳統的程式式(procedural)思維有極大區別。傳統思維著重於軟體系統的功能(function)上﹐努力思考系統應提供那些功能﹐以及使用者使用這些功能的順序。並不常深入去了解各實體的結構。例如﹐會優先思考如何處理「購書」功能﹐而少去探究購書單的結構及相關資訊。
(2) 抽象(abstraction)
問題領域中的具體實體(concrete entity) 常激勵軟體師去發掘更具通用性的抽象物件(abstract object) 。例如﹐從購書清單可推匯出該圖書館主題(focus subject) ﹐以及學生的閱讀偏好等等。
無論是具體實體或抽象物件﹐在對應到軟體物件時﹐皆得再運用抽象能力﹐將實體的結構(structure) 隱藏起來﹐同時定義出抽象的介面(abstract interface)﹐讓其它物件瞭解如何使用其引藏之結構與資料。亦即﹐抽象介面說明該物件的服務專案﹐或稱為行為(behavior)。
於是軟體師就能確實瞭解各實體的內部結構及其行為﹐然後藉由OO語言中的抽象資料型態(abstract data type)﹐來表達之﹔此時﹐就順利將實體完整地對應到軟體物件之中了。
(3) 擬人化(anthropomophizing)
物件具有行為﹐使得物件能為其它物件提供服務﹐也能在團隊或組織(organization)中扮演特定之角色(role)。經由擬人化的思維﹐可把實體或物件看成像人們一樣有智慧、善溝通、可互助合作的東西。如此﹐可賦予軟體物件更多更多的角色(即行為)﹐並呈現於物件的抽象介面之中。例如﹐購書清單內含一串待購之書本專案(book item) ﹔在賦予人性、視其為有智慧之實體後﹐您就可問清單﹕購書總金額多少﹖清單會再問各書本專案﹕單價為何﹖購書清單累計而得總金額﹐再傳回答案給您。
軟體師經由擬人化思維來釐清軟體物件之合作關係﹐安排物件之角色﹐定義物件之介面與行為。
OO思維有助於理清問題(problem) 與軟體解決方案(solution)之間的對應關係﹐讓問題領域專家(domain expert) ──使用者(end user)能藉其對問題的瞭解而輕易理解軟體的組織與使用方式﹐也讓使用者熱衷參與軟體的開發工作。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-982211/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 五種可以輔助數字化轉型落地的思維模式模式
- 從思維轉變看數字化轉型 IT 經營
- 平行關係轉化思維導圖
- 【架構入門系列】從業務到平臺的思維轉變架構
- 思維模式進階實錄:徵集中國企業數字化轉型案例模式
- 企業數字化轉型:聊聊資料思維!
- 服裝企業數字化轉型是必然的趨勢——思維的轉變
- 效率思維模式與Zombie Scrum模式Scrum
- 思維意識轉變是施工企業數字化轉型成敗的關鍵
- 【轉】管理者,一定要有道-法-術的思維模型模型
- 玩轉策略模式模式
- OO設計模式中的工廠模式設計模式
- 如何“玩轉”MongoDB?羅輯思維資料庫效能最佳化之路!MongoDB資料庫
- 數字化轉型,你需要的不是資料,而是資料思維!
- 安全產品經理的思維模式模式
- 思維體系---技術思維、業務資料思維、產品思維、複合思維
- Java 二維陣列轉一維Java陣列
- [重慶思莊每日技術分享]-ORACLE19C UNDO共享模式轉換為本地模式Oracle模式
- 系統思維實踐入門
- P10412 「QFOI R2」鐘聲遠帶斜陽 ——思維轉化
- 從思維走向實踐,數字化轉型 IT 經營的成功路徑
- 轉:Android 思維導圖 一張圖幫你複習Android知識體系Android
- JS 專案拾粹 六: 將 Markdown 轉為思維導圖的開源工具JS開源工具
- 程式設計師如何提升管理思維,從個人到團隊的轉變?程式設計師
- 關於浮動會錯亂的問題——轉換思維尋找替代方案
- 淺析工具思維、產品思維、品牌思維與定位
- 【轉】Zookeeper入門
- 求職思維和招聘思維求職
- python入門知識思維導圖Python
- 一張思維大圖入門ReactReact
- 命令模式 :Command(轉自LoveCherry)模式
- DevOps 思維模式的 5 個基本價值觀dev模式
- 客戶成功是一種思維模式 | ONES 人物模式
- js 一維陣列轉二維陣列JS陣列
- js 二維陣列轉一維陣列JS陣列
- 報告:數字化轉型新思
- 206、反轉連結串列 | 演算法(leetcode,附思維導圖 + 全部解法)300題演算法LeetCode
- 三維空間的旋轉
- PHP掃描圖片轉點陣 二維碼轉點陣PHP