日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

在軟件開發(fā)中,為了提高軟件系統(tǒng)的可維護(hù)性和可復(fù)用性,增加軟件的可擴(kuò)展性和靈活性,程序員要盡量根據(jù) 7 條原則來(lái)開發(fā)程序,從而提高軟件開發(fā)效率、節(jié)約軟件開發(fā)成本和維護(hù)成本。我們將在下面的幾節(jié)中依次來(lái)介紹這 7 條原則,本節(jié)首先介紹開閉原則。

開閉原則的定義

開閉原則(Open Closed Principle,OCP)由勃蘭特·梅耶(Bertrand Meyer)提出,他在 1988 年的著作《面向?qū)ο筌浖?gòu)造》(Object Oriented Software Construction)中提出:軟件實(shí)體應(yīng)當(dāng)對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉(Software entities should be open for extension,but closed for modification),這就是開閉原則的經(jīng)典定義。
這里的軟件實(shí)體包括以下幾個(gè)部分:

  1. 項(xiàng)目中劃分出的模塊
  2. 類與接口
  3. 方法


開閉原則的含義是:當(dāng)應(yīng)用的需求改變時(shí),在不修改軟件實(shí)體的源代碼或者二進(jìn)制代碼的前提下,可以擴(kuò)展模塊的功能,使其滿足新的需求。

開閉原則的作用

開閉原則是面向?qū)ο蟪绦蛟O(shè)計(jì)的終極目標(biāo),它使軟件實(shí)體擁有一定的適應(yīng)性和靈活性的同時(shí)具備穩(wěn)定性和延續(xù)性。具體來(lái)說(shuō),其作用如下。

1. 對(duì)軟件測(cè)試的影響

軟件遵守開閉原則的話,軟件測(cè)試時(shí)只需要對(duì)擴(kuò)展的代碼進(jìn)行測(cè)試就可以了,因?yàn)樵械臏y(cè)試代碼仍然能夠正常運(yùn)行。

2. 可以提高代碼的可復(fù)用性

粒度越小,被復(fù)用的可能性就越大;在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,根據(jù)原子和抽象編程可以提高代碼的可復(fù)用性。

3. 可以提高軟件的可維護(hù)性

遵守開閉原則的軟件,其穩(wěn)定性高和延續(xù)性強(qiáng),從而易于擴(kuò)展和維護(hù)。

開閉原則的實(shí)現(xiàn)方法

可以通過(guò)“抽象約束、封裝變化”來(lái)實(shí)現(xiàn)開閉原則,即通過(guò)接口或者抽象類為軟件實(shí)體定義一個(gè)相對(duì)穩(wěn)定的抽象層,而將相同的可變因素封裝在相同的具體實(shí)現(xiàn)類中。
因?yàn)槌橄箪`活性好,適應(yīng)性廣,只要抽象的合理,可以基本保持軟件架構(gòu)的穩(wěn)定。而軟件中易變的細(xì)節(jié)可以從抽象派生來(lái)的實(shí)現(xiàn)類來(lái)進(jìn)行擴(kuò)展,當(dāng)軟件需要發(fā)生變化時(shí),只需要根據(jù)需求重新派生一個(gè)實(shí)現(xiàn)類來(lái)擴(kuò)展就可以了。
下面以 windows 的桌面主題為例介紹開閉原則的應(yīng)用。
【例1】Windows 的桌面主題設(shè)計(jì)。
分析:Windows 的主題是桌面背景圖片、窗口顏色和聲音等元素的組合。用戶可以根據(jù)自己的喜愛(ài)更換自己的桌面主題,也可以從網(wǎng)上下載新的主題。這些主題有共同的特點(diǎn),可以為其定義一個(gè)抽象類(Abstract Subject),而每個(gè)具體的主題(Specific Subject)是其子類。用戶窗體可以根據(jù)需要選擇或者增加新的主題,而不需要修改原代碼,所以它是滿足開閉原則的,其類圖如圖 1 所示。

面向?qū)ο笤O(shè)計(jì)原則之開閉原則

 


圖1 Windows的桌面主題類圖

本文來(lái)源:http://c.biancheng.net/view/1322.html

分享到:
標(biāo)簽:面向?qū)ο?/a>
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定