人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

轉(zhuǎn)重粒子空間:啥是OO思維

轉(zhuǎn)重粒子空間:啥是OO思維

更新時間:2022-10-18 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

從ASP或者VB轉(zhuǎn)來的程序員,肯定以前對于OO思維不太熟悉,開心特從重粒子空間轉(zhuǎn)來此文,希望對大家有所幫助。

 采用OO軟體開發(fā)方法的過程中﹐許多人自然而然偏重于技術(shù)層面﹐例如﹐使用OO分解(object-oriented decomposition) 來進行模組化﹐運用繼承功能來建立類別體系(class hierarchy) 等等。不過﹐偏好于技術(shù)者﹐往往會忽略這些技術(shù)背后的心理因素﹔也就是OO思維模式(object-oriented thinking)﹐這是許多人采用OO方法過程中﹐不斷產(chǎn)生挫折感的重要因素。

OO思維是軟體師的心智(mental)運作過程﹐包括對問題(problem)的看法,以及如何藉由對問題的了解而導(dǎo)出解決方案(solution)﹐然后以可執(zhí)行的軟體系統(tǒng)(working system)來表達之。雖然每個人的思維模式并不盡相同﹐但下述各項是OO軟體師的常見思維模式﹕


(1) 實體對應(yīng)(entity mapping)

首先專注于了解問題領(lǐng)域(problem domain)中的各實體(entity)﹐并認(rèn)識各實體的結(jié)構(gòu)本質(zhì)﹐然后對應(yīng)到軟體中的物件(object)。例如﹐圖書館的購書清單、書本等等。此外還可延伸到其它實體,如出版商、學(xué)生課程等。OO軟體師常用心體會這些實體的結(jié)構(gòu)﹐以及有關(guān)的資訊﹐然后藉軟體物件表達之﹐成為軟體中的重要組件(key component) 。

這一點與傳統(tǒng)的程序式(procedural)思維有極大區(qū)別。傳統(tǒng)思維著重于軟體系統(tǒng)的功能(function)上﹐努力思考系統(tǒng)應(yīng)提供那些功能﹐以及使用者使用這些功能的順序。并不常深入去了解各實體的結(jié)構(gòu)。例如﹐會優(yōu)先思考如何處理「購書」功能﹐而少去探究購書單的結(jié)構(gòu)及相關(guān)資訊。

(2) 抽象(abstraction)

問題領(lǐng)域中的具體實體(concrete entity) 常激勵軟體師去發(fā)掘更具通用性的抽象物件(abstract object) 。例如﹐從購書清單可推導(dǎo)出該圖書館主題(focus subject) ﹐以及學(xué)生的閱讀偏好等等。

無論是具體實體或抽象物件﹐在對應(yīng)到軟體物件時﹐皆得再運用抽象能力﹐將實體的結(jié)構(gòu)(structure) 隱藏起來﹐同時定義出抽象的介面(abstract interface)﹐讓其它物件了解如何使用其引藏之結(jié)構(gòu)與資料。亦即﹐抽象介面說明該物件的服務(wù)項目﹐或稱為行為(behavior)。

于是軟體師就能確實了解各實體的內(nèi)部結(jié)構(gòu)及其行為﹐然后藉由OO語言中的抽象資料型態(tài)(abstract data type)﹐來表達之﹔此時﹐就順利將實體完整地對應(yīng)到軟體物件之中了。

(3) 擬人化(anthropomophizing)

物件具有行為﹐使得物件能為其它物件提供服務(wù)﹐也能在團隊或組織(organization)中扮演特定之角色(role)。經(jīng)由擬人化的思維﹐可把實體或物件看成像人們一樣有智慧、善溝通、可互助合作的東西。如此﹐可賦予軟體物件更多更多的角色(即行為)﹐并呈現(xiàn)于物件的抽象介面之中。例如﹐購書清單內(nèi)含一串待購之書本項目(book item) ﹔在賦予人性、視其為有智慧之實體后﹐您就可問清單﹕購書總金額多少﹖清單會再問各書本項目﹕單價為何﹖購書清單累計而得總金額﹐再傳回答案給您。

 軟體師經(jīng)由擬人化思維來厘清軟體物件之合作關(guān)系﹐安排物件之角色﹐定義物件之介面與行為。



OO思維有助于厘清問題(problem) 與軟體解決方案(solution)之間的對應(yīng)關(guān)系﹐讓問題領(lǐng)域?qū)<?domain expert) ──使用者(end user)能藉其對問題的了解而輕易理解軟體的組織與使用方式﹐也讓使用者熱衷參與軟體的開發(fā)工作。



參考書籍

1. Rosson M.B. and Gold E., "Problem-Solution Mapping in Object-Oriented Design", OOPSLA '89 Proceedings, PP.7-10. 

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 洪江市| 花垣县| 巴彦淖尔市| 扬州市| 乌什县| 玛多县| 丰台区| 剑河县| 南皮县| 景洪市| 青冈县| 积石山| 平乐县| 潞城市| 诏安县| 成安县| 萝北县| 临漳县| 鸡西市| 长海县| 金寨县| 安康市| 日照市| 嘉黎县| 文安县| 江都市| 绥棱县| 平利县| 宝应县| 福鼎市| 呼图壁县| 郑州市| 宁阳县| 正蓝旗| 延川县| 灵丘县| 沙坪坝区| 济阳县| 治多县| 武平县| 北海市|