日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

00_设计模式6大原则

發(fā)布時(shí)間:2024/2/28 asp.net 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 00_设计模式6大原则 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)載自https://www.cnblogs.com/HigginCui/p/6195318.html

【六大原則總覽】

1.單一職責(zé)原則

2.里氏替換原則

3.依賴(lài)導(dǎo)致原則

4.接口隔離原則

5.迪米特法則

6.開(kāi)閉原則

?

【原則一:單一職責(zé)原則】

  英文全稱(chēng):Single Responsibility Principle,簡(jiǎn)稱(chēng)SRP。

  要求一個(gè)接口或類(lèi)只有一個(gè)原因引起變化,就是一個(gè)接口或類(lèi)只有一個(gè)原則,它就負(fù)責(zé)一件事情。

[ 好處 ]?

* 類(lèi)的復(fù)雜性降低,實(shí)現(xiàn)什么職責(zé)都有清晰明確的定義;

* 可讀性提高,復(fù)雜性降低。

* 可維護(hù)性提高。

* 變更引起的風(fēng)險(xiǎn)降低。如果接口的定義職責(zé)做的很好,一個(gè)接口修改只對(duì)相應(yīng)的實(shí)現(xiàn)類(lèi)有影響,對(duì)其它接口沒(méi)有影響,這對(duì)系統(tǒng)的擴(kuò)展性和可維護(hù)性非常大的幫助。

?

?

【原則二:里氏替換原則】

首先分析一下繼承的優(yōu)點(diǎn)缺點(diǎn);

[ 繼承的優(yōu)點(diǎn) ]

* 代碼共享,減少創(chuàng)建類(lèi)的工作量,每個(gè)子類(lèi)都擁有父類(lèi)的方法和屬性。

* 提高了代碼的重用性。

* 子類(lèi)可以形似父類(lèi),但又異于父類(lèi)。

* 提高代碼的擴(kuò)展性,許多開(kāi)源框架的擴(kuò)展接口都是通過(guò)繼承父類(lèi)來(lái)完成的。

* 提高產(chǎn)品或項(xiàng)目的開(kāi)放性。

[ 繼承的缺點(diǎn) ]

* 繼承是侵入性的。只要繼承,子類(lèi)就必須擁有父類(lèi)的所有屬性和方法。

* 降低代碼的靈活性,子類(lèi)必須擁有父類(lèi)的屬性和方法,給子類(lèi)添加了約束。

* 增強(qiáng)了代碼的耦合性,當(dāng)父類(lèi)的常量、變量或方法修改時(shí),就要考慮子類(lèi)的修改。

[ 里氏替換原則的定義 ]

只要父類(lèi)能出現(xiàn)的地方,子類(lèi)就可以出現(xiàn),而且替換給子類(lèi)就不會(huì)出現(xiàn)任何的錯(cuò)誤或異常,使用者不需要知道是子類(lèi)還是父類(lèi),但是反過(guò)來(lái)是不可以的,有子類(lèi)出現(xiàn)的地方,父類(lèi)未必就可以。

[ 里氏替換原則的四層含義 ]

* 子類(lèi)必須實(shí)現(xiàn)父類(lèi)的方法。

* 子類(lèi)必須有自己的個(gè)性

* 覆蓋或?qū)崿F(xiàn)或父類(lèi)的方法時(shí)輸入?yún)?shù)可以被放大。

* 覆寫(xiě)或?qū)崿F(xiàn)父類(lèi)的方法時(shí)輸出結(jié)果可以被縮小。

?

【原則三:依賴(lài)倒置原則】

[ 在java語(yǔ)言中的表現(xiàn) ]?

* 模塊間的依賴(lài)通過(guò)抽象發(fā)生,實(shí)現(xiàn)類(lèi)之間不發(fā)生直接的依賴(lài)關(guān)系,其依賴(lài)關(guān)系通過(guò)接口或抽象類(lèi)產(chǎn)生。

* 接口或抽象類(lèi)不依賴(lài)其實(shí)現(xiàn)類(lèi)。

* 實(shí)現(xiàn)類(lèi)依賴(lài)接口或抽象類(lèi)。

?

【原則四:接口隔離原則】

接口隔離原則要求接口中的方法盡量少。(單一職責(zé)要求類(lèi)和接口職責(zé)單一,注重的是職責(zé),是業(yè)務(wù)邏輯上的劃分)

?

【原則五:迪米特法則】

也稱(chēng)為最少知識(shí)原則,一個(gè)對(duì)象應(yīng)該對(duì)其它對(duì)象由最少的了解,即一個(gè)類(lèi)應(yīng)該對(duì)自己需要耦合或調(diào)用的類(lèi)知道的最少。

?

【原則六:開(kāi)閉原則】

軟件實(shí)體,應(yīng)該對(duì)擴(kuò)展開(kāi)放,對(duì)修改關(guān)閉,含義就是一個(gè)原件實(shí)體應(yīng)該通過(guò)擴(kuò)展來(lái)實(shí)現(xiàn)變化,而不是通過(guò)修改已有的代碼來(lái)實(shí)現(xiàn)變化。


總結(jié)

以上是生活随笔為你收集整理的00_设计模式6大原则的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。