最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

OOD-對象設(shè)計原則(類的設(shè)計原則,包的內(nèi)聚性設(shè)計原則,包之間的耦合性設(shè)計原則)

2023-05-31 00:50 作者:-Arlance-  | 我要投稿

請解釋什么是對象設(shè)計原則(類的設(shè)計原則,包的內(nèi)聚性設(shè)計原則,包之間的耦合性設(shè)計原則)?

(1)類的設(shè)計原則

[1]單一職責原則(Single Responsibility Principle, SRP)

所謂職責,是指類變化的原因。此原則規(guī)定一個類應(yīng)該只有一個發(fā)生變化的原因。

如果一個類有多于一個的動機被改變,那么這個類就具有多于一個的職責,實際上就是耦合了多個不相關(guān)的職責,從而降低了這個類的內(nèi)聚性。

[2]開—閉原則(Open-Close Principle.OCP)

一個類應(yīng)當對擴展開放,對修改關(guān)閉?!皩U展開放(Open for Extension)"意味著類的行為是可以擴展的,當應(yīng)用程序的需求改變時,可以對類進行擴展,使其具有滿足改變的行為。“對修改關(guān)閉(Close for Modification)”意味著不用修改類,就能擴展這個類的新行為。

[3]里氏替換原則(Liskov Substitution Principle,LSP)

任何基類出現(xiàn)的地方,子類一定可以出現(xiàn)。LSP是繼承復用的基石。只有當衍生類可以替換基類,軟件單位的功能不受到影響時,基類才能真正被復用,而衍生類也能夠在基類的基礎(chǔ)上增加新的行為。

Liskov 于1987 年提出了一個關(guān)于繼承的原則 Inheritance should ensure that any property proved about supertype objects also holds for subtype objects.—“繼承必須確保超類所擁有的性質(zhì)在子類中仍然成立”。也就是說,當一個子類的實例能夠替換任何其超類的實例時,它們之間才具有is-A關(guān)系。

[4]依賴倒置原則(Dependence-Inversion Principle,DIP)

系統(tǒng)抽象化的具體實現(xiàn),要求對抽象進行編程,不要對實現(xiàn)進行編程,這樣就降低了客戶與實現(xiàn)模塊間的耦合。

依賴倒置原則是很多面向?qū)ο蠹夹g(shù)的根基。它特別適合用于構(gòu)件可復用的軟件框架,有利于編寫彈性、易于變化的代碼;此外,由于抽象和細節(jié)彼此隔離,代碼也便于維護。

[5]接口隔離原則(Interface Segregation Principle,ISP)

客戶端不應(yīng)該依賴它不需要的接口,一個類對另一個類的依賴應(yīng)該建立在最小的接口上。要求接口的方法盡量少,接口盡量細化。

接口隔離原則和單一職責原則很相似,區(qū)別在于觀察角度不同。前者是從調(diào)用者的角度來看;而后者從類或自身方法的角度來看。

[6]迪米特原則(Law of Demeter,LoD)

迪米特原則又叫最少知識原則(Least Knowledge Principle,LKP),也就是說,一個對象應(yīng)當對其他對象有盡可能少地了解,即“不和陌生人說話”。降低系統(tǒng)的耦合度,使一個模塊的修改盡量少地影響其他模塊,擴展會相對容易。

[7]組合/聚合復用原則(Composition/Aggregation Reuse Principle,C/ARP)。

在面向?qū)ο蟮脑O(shè)計中,如果直接繼承基類,會破壞封裝,因為繼承將基類的實現(xiàn)細節(jié)暴露給子類;如果基類的實現(xiàn)發(fā)生改變,則子類的實現(xiàn)也不得不發(fā)生改變;從基類繼承而來的實現(xiàn)是靜態(tài)的,不可能在運行時發(fā)生改變,沒有足夠的靈活性。

組合/聚合復用原則指出,在實際開發(fā)設(shè)計中盡量使用合成/聚合,不要使用類繼承。


(2)包的內(nèi)聚性設(shè)計原則

[1]共同重用原則(Common Reuse Principle,CRP)

一個包中的所有類應(yīng)該是共同重用的,也就是說,如果重復用了包中的一個類,就要重用包中的所有類。換句話說,相互之間沒有緊密聯(lián)系的類不應(yīng)該放在同一個包中。

[2]共同封閉原則(Common Closure Principle,CCP)

包中的所有類對于同一種性質(zhì)的變化應(yīng)該是共同封閉的。一個變化若對一個封閉的包產(chǎn)生影響,則將對該包中的所有類產(chǎn)生影響,而對于其他包則不造成任何影響,這樣會減少軟件的發(fā)布、重新驗證和重新發(fā)布的工作量。


(3)包之間的耦合性設(shè)計原則

[1]無環(huán)依賴原則(Acyclic Dependencies Principle,ADP)

包之間的依賴結(jié)構(gòu)必須是一個直接的無環(huán)圖形(DAG)。換成另一個說法是,包之間的依賴不能是一個環(huán)狀形式,否則對類的隔離會變得非常難。

[2]穩(wěn)定依賴原則(Stable Dependencies Principle,SDP)

對于任何包而言,如果它是可變的,就不應(yīng)該讓一個難以更改的包依賴它。否則,可變的包也會難以更改。

[3]穩(wěn)定抽象原則(Stable Abstractions Principle,ASP)

包的抽象程度應(yīng)該和其穩(wěn)定程度一致。穩(wěn)定的包應(yīng)該是抽象的,它的穩(wěn)定性使其靈活擴展。一個包的抽象程度越高,它的穩(wěn)定性越高。反之,它的穩(wěn)定性就低。

明確對象設(shè)計任務(wù)后,在對象設(shè)計原則的指導下使用程序設(shè)計工具才能實施對象設(shè)計??傊?,在對象設(shè)計階段繼續(xù)完善面向?qū)ο蠓椒ㄖ械?個基礎(chǔ)模型:對象模型、功能模型以及動態(tài)模型。


作者主頁

https://blog.csdn.net/weixin_61964996

OOD-對象設(shè)計原則(類的設(shè)計原則,包的內(nèi)聚性設(shè)計原則,包之間的耦合性設(shè)計原則)的評論 (共 條)

分享到微博請遵守國家法律
阳泉市| 平武县| 如东县| 龙海市| 郓城县| 大石桥市| 高雄市| 中江县| 岳阳县| 南靖县| 高密市| 元阳县| 固安县| 滨海县| 平顶山市| 德兴市| 崇州市| 商南县| 台北市| 五指山市| 光泽县| 鞍山市| 来凤县| 平邑县| 嘉荫县| 盈江县| 黔东| 古丈县| 富锦市| 陕西省| 南岸区| 娄烦县| 沈阳市| 梅河口市| 木兰县| 阳信县| 平泉县| 晋中市| 承德县| 吉隆县| 通渭县|