亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 課堂 > 技術開發 > 正文

面向對象的設計原則之類設計原則

2023-06-18 12:51:34
字體:
來源:轉載
供稿:網友

在面向對象設計中,如何通過很小的設計改變就可以應對設計需求的變化,這是令設計者極為關注的問題。為此不少OO先驅提出了很多有關面向對象的設計原則用于指導OO的設計和開發。下面是幾條與類設計相關的設計原則。

(1)開閉原則(the Open Closed Principle OCP)

一個模塊在擴展性方面應該是開放的而在更改性方面應該是封閉的。因此在進行面向對象設計時要盡量考慮接口封裝機制、抽象機制和多態技術。該原則同樣適合于非面向對象設計的方法,是軟件工程 設計方法的重要原則之一。

我們以收音機的例子為例,講述面向對象的開閉原則。我們收聽節目時需要打開收音機電源,對準電臺頻率和進行音量調節。但是對于不同的收音機,實現這三個步驟的細節往往有所不同。比如自動收縮電臺的收音機和按鈕式收縮在操作細節上并不相同。因此,我們不太可能針對每種不同類型的收音機通過一個收音機類來實現(通過重載)這些不同的操作方式。但是我們可以定義一個收音機接口,提供開機、關機、增加頻率、降低頻率、增加音量、降低音量六個抽象方法。不同的收音機繼承并實現這六個抽象方法。這樣新增收音機類型不會影響其它原有的收音機類型,收音機類型擴展極為方便。此外,已存在的收音機類型在修改其操作方法時也不會影響到其它類型的收音機。

下面圖1是一個應用OCP生成的收音機類圖的例子:


圖1 OCP應用(收音機)

(2)替換原則 (the Liskov Substitution Principle LSP)

子類應當可以替換父類并出現在父類能夠出現的任何地方。這個原則是Liskov于1987年提出的設計原則。它同樣可以從Bertrand Meyer 的DBC (Design by Contract) 的概念推出。

我們以學生為例,夜校生為學生的子類,因此在任何學生可以出現的地方,夜校生均可出現。這個例子有些牽強,一個能夠反映這個原則的例子時圓和橢圓,圓是橢圓的一個特殊子類。因此任何出現橢圓的地方,圓均可以出現。但反過來就可能行不通。

Liskov的相關圖示如下圖2所示:


圖2 Liskov 原則

運用替換原則時,我們盡量把類B設計為抽象類或者接口,讓C類繼承類B(接口B)并實現操作A和操作B,運行時,類C實例替換B,這樣我們即可進行新類的擴展(繼承類B或接口B),同時無須對類A進行修改。

(3)依賴原則 (the Dependency Inversion Principle DIP)

在進行業務設計時,與特定業務有關的依賴關系應該盡量依賴接口和抽象類,而不是依賴于具體類。具體類只負責相關業務的實現,修改具體類不影響與特定業務有關的依賴關系。

在結構化設計中,我們可以看到底層的模塊是對高層抽象模塊的實現(高層抽象模塊通過調用底層模塊),這說明,抽象的模塊要依賴具體實現相關的模塊,底層模塊的具體實現發生變動時將會嚴重影響高層抽象的模塊,顯然這是結構化方法的一個"硬傷"。

面向對象方法的依賴關系剛好相反,具體實現類依賴于抽象類和接口(見圖-3)。

為此,我們在進行業務設計時,應盡量在接口或抽象類中定義業務方法的原型,并通過具體的實現類(子類)來實現該業務方法,業務方法內容的修改將不會影響到運行時業務方法的調用。


圖3依賴原則圖示

(4)接口分離原則(the Interface Segregation Principle ISP)

采用多個與特定客戶類有關的接口比采用一個通用的涵蓋多個業務方法的接口要好。

ISP原則是另外一個支持諸如COM等組件化的使能技術。缺少ISP,組件、類的可用性和移植性將大打折扣。

這個原則的本質相當簡單。如果你擁有一個針對多個客戶的類,為每一個客戶創建特定業務接口,然后使該客戶類繼承多個特定業務接口將比直接加載客戶所需所有方法有效。

圖4展示了一個擁有多個客戶的類。它通過一個巨大的接口來服務所有的客戶。只要針對客戶A的方法發生改變,客戶B和客戶C就會受到影響。因此可能需要進行重新編譯和發布。這是一種不幸的做法。


圖4 帶有集成接口的服務類

我們再看圖-5中所展示的技術。每個特定客戶所需的方法被置于特定的接口中,這些接口被Service類所繼承并實現。


圖5 使用接口分離的服務類設計

如果針對客戶A的方法發生改變,客戶B和客戶C并不會受到任何影響,也不需要進行再次編譯和重新發布。

以上四個原則是面向對象中常常用到的原則。此外,除上述四原則外,還有一些常用的經驗諸如類結構層次以三到四層為宜、類的職責明確化(一個類對應一個具體職責)等可供我們在進行面向對象設計參考。

但就上面的幾個原則看來,我們看到這些類在幾何分布上呈現樹型拓撲的關系,這是一種良好、開放式的線性關系、具有較低的設計復雜度。一般說來,在軟件設計中我們應當盡量避免出現帶有閉包、循環的設計關系,它們反映的是較大的耦合度和設計復雜化。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品jvid在线观看蜜臀| 欧美午夜宅男影院在线观看| 久久久久久久久久久网站| 国产欧美欧洲在线观看| 日韩精品视频在线| 亚洲色图色老头| 成人亚洲欧美一区二区三区| 日韩av一卡二卡| 国产精品扒开腿爽爽爽视频| 中文字幕欧美精品在线| 日韩色av导航| 欧美日韩中国免费专区在线看| 国产一区二区在线播放| 岛国视频午夜一区免费在线观看| 日韩网站免费观看高清| 91探花福利精品国产自产在线| 久久久久久999| 欧美精品一区二区免费| 亚洲精品大尺度| 欧美日产国产成人免费图片| 国产女人精品视频| 亚洲精品小视频在线观看| 丝袜一区二区三区| 亚洲黄色免费三级| 久久久久久久久久久成人| 欧美性色视频在线| 国产区亚洲区欧美区| 91成人国产在线观看| 国语自产偷拍精品视频偷| 欧美在线国产精品| 成人av在线天堂| 亚洲成人在线视频播放| 欧美激情精品久久久久久久变态| 亚洲免费伊人电影在线观看av| 蜜臀久久99精品久久久久久宅男| 色综合天天狠天天透天天伊人| 欧美激情xxxx| 日韩av在线网| 日韩av在线最新| 精品久久久久久中文字幕一区奶水| 久久天天躁狠狠躁夜夜爽蜜月| 91精品国产高清久久久久久久久| 一本一本久久a久久精品综合小说| 欧洲午夜精品久久久| 第一福利永久视频精品| 久久精品中文字幕一区| 国产69精品久久久久9999| 国产精品久久久久久久久影视| 在线成人激情视频| 中文字幕国产精品久久| 国语自产在线不卡| 亚洲字幕在线观看| 日产精品久久久一区二区福利| 91爱爱小视频k| 国产69久久精品成人看| 欧美性xxxx在线播放| 久久电影一区二区| 亚洲淫片在线视频| 亚洲第一福利网站| 永久免费毛片在线播放不卡| 欧美高清无遮挡| 亚洲人成在线一二| 中文日韩电影网站| 成人精品视频在线| 亚洲精品国产精品久久清纯直播| 亚洲精选中文字幕| 亚洲精品综合精品自拍| 亚洲的天堂在线中文字幕| 国产婷婷成人久久av免费高清| 992tv在线成人免费观看| 日韩av日韩在线观看| 美女国内精品自产拍在线播放| 国产成人综合一区二区三区| 精品国产拍在线观看| 日韩一区二区三区在线播放| 91人人爽人人爽人人精88v| 91在线视频导航| 亚洲欧美变态国产另类| 国产一区二区三区日韩欧美| 91欧美精品午夜性色福利在线| 欧美极品少妇xxxxⅹ免费视频| 国产精品白丝av嫩草影院| 久久免费精品日本久久中文字幕| 日韩欧美国产高清91| 国产精品久久久久久久电影| 精品国产精品自拍| 亚洲xxxx视频| 成人激情av在线| 亚洲а∨天堂久久精品9966| 亚洲天堂开心观看| 97国产真实伦对白精彩视频8| 久久久av网站| 日韩成人在线视频| 国内揄拍国内精品| 亚洲国产婷婷香蕉久久久久久| 国产精品美女在线观看| 久久精品视频亚洲| 欧美日韩美女在线观看| 亚洲午夜色婷婷在线| 国产精品久久久久福利| 成人国产精品一区二区| 性色av一区二区三区红粉影视| 97视频免费看| 国产精品一区av| 欧美成年人视频网站欧美| 亚洲精品久久久久久久久| 欧美日韩精品在线观看| 国产在线精品自拍| 上原亚衣av一区二区三区| 亚洲欧美综合v| 欧美性少妇18aaaa视频| 亚洲午夜未删减在线观看| 久久久女人电视剧免费播放下载| 亚洲成人精品在线| 亚洲国产精品99| 国产一区二区三区视频免费| 91精品久久久久久久久久另类| 亚洲欧洲成视频免费观看| 国产91精品久久久久| 欧日韩不卡在线视频| 国语自产精品视频在线看| 久久精品电影网站| 欧美精品videossex性护士| 亚洲2020天天堂在线观看| 国产精品三级美女白浆呻吟| 91极品视频在线| 日韩欧美精品免费在线| 亚洲国产精品电影在线观看| 亚洲天堂视频在线观看| 成人精品在线视频| 亚洲97在线观看| 欧美亚洲视频一区二区| 亚洲欧美日韩爽爽影院| 国产精品igao视频| 国产日韩欧美自拍| 久久天天躁狠狠躁老女人| 国产欧美日韩中文字幕| 日韩亚洲一区二区| 色视频www在线播放国产成人| 国产成人欧美在线观看| 91精品久久久久久久久青青| 日本欧美爱爱爱| 日本精品性网站在线观看| 日本高清+成人网在线观看| 91精品国产色综合久久不卡98| 81精品国产乱码久久久久久| 久热精品在线视频| 欧美日韩国产中字| 欧美怡春院一区二区三区| 国产精品免费一区| 亚洲跨种族黑人xxx| 色综合天天综合网国产成人网| 亚洲天堂成人在线| 在线电影欧美日韩一区二区私密| 亚洲人成啪啪网站| 亚洲日本欧美日韩高观看| 国产精品igao视频| 2019中文字幕全在线观看| 欧美福利小视频| 日韩高清欧美高清| 日韩福利伦理影院免费| 欧美午夜影院在线视频| 久久久久久久97| 欧美电影在线观看高清|