999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺談OOP在軟件開發(fā)中的應(yīng)用與優(yōu)勢

2018-07-13 01:40:24
軟件 2018年6期
關(guān)鍵詞:方法系統(tǒng)

庾 佳

(蘇州健雄職業(yè)技術(shù)學(xué)院,江蘇 太倉 215400)

0 引言

軟件開發(fā)人員在尋求問題的合格解決方案時(shí)通常會(huì)遵循某些軟件開發(fā)方法。這些解決方案作為計(jì)算機(jī)軟件來實(shí)現(xiàn)。

1 軟件開發(fā)原則

處理軟件復(fù)雜性的一種熟悉而且自然的方式是將系統(tǒng)劃分(或分解)為可管理的模塊(片段或組建)。將系統(tǒng)分解陳模塊由許多方式。有一些原則可以幫助我們獲得所期望的分解結(jié)果。

1.1 模塊化和本地化

軟件開發(fā)人員通過使用模塊化[3](modularity)原則來控制系統(tǒng)的復(fù)雜性。在系統(tǒng)開發(fā)的早期,系統(tǒng)被分解為一組模塊,這些模塊由過程和函數(shù)組成。通常,一種自上而下(top-down)的開發(fā)策略將系統(tǒng)不斷地分解為更小的模塊。一般而言,高層次模塊指定需要進(jìn)行什么操作,而低層次模塊則解決如何實(shí)現(xiàn)這些操作。圖1說明了將一個(gè)用于解決某個(gè)問題的系統(tǒng)進(jìn)行了層次化分解的示意圖。

圖1 將系統(tǒng)分解成模塊Fig. 1 Decompose the system into modules

1.2 抽象和信息隱藏

解決問題人員通常使用抽象來處理系統(tǒng)的復(fù)雜性。使用抽象的重點(diǎn)在于定義系統(tǒng)的某個(gè)部分或組建,使得該組建能夠被看成是一個(gè)黑箱[5]。所有早期的編程語言都是通過子過程構(gòu)造(即過程和函數(shù))來支持都想,稱為過程抽象(procedural abstraction)。進(jìn)一些年來,面向?qū)ο笳Z言所推崇的OOP技術(shù),支持?jǐn)?shù)據(jù)抽象(data abstraction),其目的在于將每種數(shù)據(jù)結(jié)構(gòu)或?qū)ο罂醋魇怯蓴?shù)據(jù)屬性以及針對這些屬性的操作所組成。

信息隱藏的目的在于使一些不會(huì)影響到系統(tǒng)中的其他模塊的細(xì)節(jié)不可訪問,這樣,數(shù)據(jù)類型和它的操作便組成了一個(gè)封閉的系統(tǒng)。其中的細(xì)節(jié)對于其他的模塊是隱藏的。

1.3 松散耦合度和高內(nèi)聚度

擁有一個(gè)松散耦合度的系統(tǒng)有兩個(gè)優(yōu)點(diǎn):第一,使用其他的模塊來替換某個(gè)模塊,這樣只有很少的模塊會(huì)受這一變化的影響;第二,追蹤某個(gè)錯(cuò)誤并隔離導(dǎo)致該錯(cuò)誤的有缺陷模塊。

模塊的內(nèi)在強(qiáng)度——模塊各個(gè)部分的相關(guān)性有多強(qiáng)——稱為內(nèi)聚度。如果模塊的組成部分之間關(guān)聯(lián)性很強(qiáng),而且都與該模塊的用途和目的密切相關(guān),則稱該模塊具有很強(qiáng)的內(nèi)聚度,即高內(nèi)聚度。高內(nèi)聚是指一個(gè)軟件模塊是由相關(guān)性很強(qiáng)的代碼組成,只負(fù)責(zé)一項(xiàng)任務(wù),也就是常說的單一責(zé)任原則。

2 面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP)

面向?qū)ο蟪绦蛟O(shè)計(jì)(Object Oriented Programming)方法簡稱 OOP方法[6-8],是一種把面向?qū)ο蟮乃枷霊?yīng)用于軟件開發(fā)過程中,指導(dǎo)開發(fā)活動(dòng)的系統(tǒng)方法。相比較傳統(tǒng)的開發(fā)方法,面向?qū)ο蟮某绦蛟O(shè)計(jì)方法采用了自底向上的歸納、自頂向下的分解的方法相結(jié)合,通過對對象模型的建立,能夠真正建立基于用戶的需求,而且系統(tǒng)的可維護(hù)性大大改善。它是歸納和演繹思想的綜合體現(xiàn),對于軟件設(shè)計(jì)起到了很好的作用。

2.1 基本概念

(1)對象:對象是人們要進(jìn)行研究的任何事物,從最簡單的整數(shù)到復(fù)雜的飛機(jī)等均可看作對象,它不僅能表示具體的事物,還能表示抽象的規(guī)則、計(jì)劃或事件。

(2)對象的狀態(tài)和行為:對象具有狀態(tài),一個(gè)對象用數(shù)據(jù)值來描述它的狀態(tài)。對象還有操作,用于改變對象的狀態(tài),對象及其操作就是對象的行為。對象實(shí)現(xiàn)了數(shù)據(jù)和操作的結(jié)合,使數(shù)據(jù)和操作封裝于對象的統(tǒng)一體中。

(3)類:具有相同或相似性質(zhì)的對象的抽象就是類。因此,對象的抽象是類,類的實(shí)體化就是對象。類具有屬性,它是對象的狀態(tài)的抽象,用數(shù)據(jù)結(jié)構(gòu)來描述類的屬性。 類具有操作,它是對象的行為的抽象,用操作名和實(shí)現(xiàn)該操作的方法來描述。

(4)消息和方法:對象之間進(jìn)行通信的結(jié)構(gòu)叫做消息。在對象的操作中,當(dāng)一個(gè)消息發(fā)送給某個(gè)對象時(shí),消息包含接收對象去執(zhí)行某種操作的信息。類中操作的實(shí)現(xiàn)過程叫做方法,一個(gè)方法有方法名。

2.2 特征

(1)對象唯一性:每個(gè)對象都有自身唯一的標(biāo)識,通過這種標(biāo)識,可找到相應(yīng)的對象。 在對象的整個(gè)生命期中,它的標(biāo)識都不改變,不同的對象不能有相同的標(biāo)識。

(2)繼承性:繼承性是子類自動(dòng)共享父類數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制,這是類之間的一種關(guān)系。 在類層次中,子類只繼承一個(gè)父類的數(shù)據(jù)結(jié)構(gòu)和方法,則稱為單重繼承。在類層次中,子類繼承了多個(gè)父類的數(shù)據(jù)結(jié)構(gòu)和方法,則稱為多重繼承。

(3)多態(tài)性:多態(tài)性使指相同的操作或函數(shù)、過程可作用于多種類型的對象上并獲得不同的結(jié)果。

3 OOP在軟件開發(fā)中的應(yīng)用

所謂面向?qū)ο缶褪腔趯ο蟾拍睿詫ο鬄橹行模灶惡屠^承為構(gòu)造機(jī)制,來認(rèn)識、 理解、刻畫客觀世界和設(shè)計(jì)、構(gòu)建相應(yīng)的軟件系統(tǒng)。

3.1 OOP與建模

建模是一個(gè)確定外部世界的某些特性或方面與某個(gè)特定問題或應(yīng)用相關(guān)的過程,是抽象的一種形式。基于本文 1.2所提及的抽象形式,即過程抽象和數(shù)據(jù)抽象,在面向?qū)ο箝_發(fā)中,著眼點(diǎn)在于對象和他們之間的交互作用。

OOP方法首先是確定對象的數(shù)據(jù),然后確定針對數(shù)據(jù)的操作。因此,對應(yīng)用進(jìn)行面向?qū)ο蠼5幕局埸c(diǎn)是確定顯示世界對象以及它們與應(yīng)用相關(guān)的交互作用。

3.2 OOP在軟件開發(fā)中的優(yōu)勢

(1)與人類的思維習(xí)慣一致:面向?qū)ο蟮乃季S方式是從人類考慮問題的角度出發(fā),把人類解決問題的思維過程轉(zhuǎn)變?yōu)槌绦蚰軌蚶斫獾倪^程。面向?qū)ο蟪绦蛟O(shè)計(jì)能夠讓我們使用“類”來模擬世界中的抽象概念,用“對象”來模擬現(xiàn)實(shí)世界中的實(shí)體,從而用計(jì)算機(jī)解決現(xiàn)實(shí)問題。

(2)提高了程序的可重復(fù)性:一個(gè)類可以創(chuàng)建多個(gè)對象實(shí)例,增加了重用性。

(3)易維護(hù):采用面向?qū)ο笏枷朐O(shè)計(jì)的結(jié)構(gòu),可讀性高,由于繼承的存在,即使改變需求,那么維護(hù)也只是在局部模塊,所以維護(hù)起來是非常方便和較低成本的。

(4)質(zhì)量高[10]:在設(shè)計(jì)時(shí),可重用現(xiàn)有的,在以前的項(xiàng)目的領(lǐng)域中已被測試過的類使系統(tǒng)滿足業(yè)務(wù)需求并具有較高的質(zhì)量。

(5)效率高:在軟件開發(fā)時(shí),根據(jù)設(shè)計(jì)的需要對現(xiàn)實(shí)世界的事物進(jìn)行抽象,產(chǎn)生類。使用這樣的方法解決問題,接近于日常生活和自然的思考方式,勢必提高軟件開發(fā)的效率和質(zhì)量。

(6)易擴(kuò)展:由于繼承、封裝、多態(tài)的特性,自然設(shè)計(jì)出高內(nèi)聚、低耦合的系統(tǒng)結(jié)構(gòu),使得系統(tǒng)更靈活、更容易擴(kuò)展,而且成本較低。

4 總結(jié)

OOP面向?qū)ο蟮暮诵母拍钍欠庋b了屬性和方法的類,以數(shù)據(jù)為中心,實(shí)現(xiàn)了類級別的代碼重用,同時(shí)因?yàn)椴捎昧祟悾哂屑珊投鄳B(tài)特征,可以進(jìn)一步重用代碼和簡化編程。面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)必將應(yīng)用到軟件設(shè)計(jì)中。

猜你喜歡
方法系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
學(xué)習(xí)方法
半沸制皂系統(tǒng)(下)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
主站蜘蛛池模板: 国产综合网站| 亚洲欧美天堂网| 亚洲无码日韩一区| 伊人激情久久综合中文字幕| 亚洲av无码久久无遮挡| 婷婷五月在线| 91精品视频在线播放| 在线无码九区| 亚洲V日韩V无码一区二区| 国产精品香蕉在线观看不卡| a毛片在线免费观看| 伊人成人在线| 日韩av高清无码一区二区三区| 无码AV动漫| 亚洲精品片911| 欧美日韩免费观看| 被公侵犯人妻少妇一区二区三区| www中文字幕在线观看| 精品国产一区二区三区在线观看 | 国产区在线看| 亚洲视频无码| 成人午夜亚洲影视在线观看| 九九热在线视频| 视频国产精品丝袜第一页| 九色在线观看视频| 欧美成人怡春院在线激情| 91色老久久精品偷偷蜜臀| 亚洲男人天堂久久| 99久久精彩视频| 国产男女免费完整版视频| 亚洲综合久久成人AV| 中国精品自拍| 丁香五月激情图片| 99热这里只有精品免费国产| 久久精品波多野结衣| 欧美另类视频一区二区三区| 久久夜色精品国产嚕嚕亚洲av| 丁香五月婷婷激情基地| 亚洲三级电影在线播放| 毛片网站免费在线观看| 九九久久精品国产av片囯产区| 69免费在线视频| 免费三A级毛片视频| 欧美成人在线免费| 一本久道热中字伊人| 老司机aⅴ在线精品导航| 欧美成在线视频| 91色爱欧美精品www| 亚洲国产精品久久久久秋霞影院| 又爽又大又光又色的午夜视频| 午夜毛片免费看| 亚洲第一色网站| 一级香蕉视频在线观看| 中文字幕丝袜一区二区| 啦啦啦网站在线观看a毛片| 亚洲AⅤ无码国产精品| 亚洲成网站| 综合人妻久久一区二区精品 | 爱爱影院18禁免费| 国产成人你懂的在线观看| 亚洲人成网站18禁动漫无码| 亚洲欧美日韩色图| 99热国产在线精品99| 一个色综合久久| 国产内射一区亚洲| 国产伦精品一区二区三区视频优播 | 亚洲成人一区二区三区| 热伊人99re久久精品最新地| 国产精品白浆在线播放| 成人国产一区二区三区| 色AV色 综合网站| 国产美女无遮挡免费视频网站 | 又爽又大又光又色的午夜视频| a级毛片网| 99久久99视频| 91精品人妻互换| 国产乱子伦精品视频| 伦精品一区二区三区视频| 久久香蕉国产线看观看亚洲片| 在线观看国产黄色| 国产精品九九视频| 亚洲第一区欧美国产综合|