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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

设计模式 学习笔记(2)单一职责原则、开放封闭原则、依赖倒转原则

發布時間:2023/12/10 asp.net 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式 学习笔记(2)单一职责原则、开放封闭原则、依赖倒转原则 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(3)單一職責原則

  單一職責原則(SRP),就一個類而言,應該僅有一個引起它變化的原因。例如,我們在寫一個窗體應用程序,一般都會生成一個Form這樣的類,于是我們就把各種各樣的代碼,像算法、數據庫訪問SQL都寫到這樣的類中,這就意味著,無論何種需求要來,你都需要更改這個窗體類,維護麻煩,不能復用,缺乏靈活性。

  如果一個類承擔的職責過多,就等于把這些職責耦合在一起,一個職責的變化可能會削弱或者抑制這個類完成其它職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到意想不到的破壞。

  軟件設計真正要做的內容就是發現職責并把那些職責相互分離。其實要去判斷是否應該分離出類來,也不難,就是如果你能夠想到一個的動機去改變一個類,那么這個類具有多于一個的職責,就應該考慮將類的職責分離。

(4)開放封閉原則

  開放-封閉原則,是說軟件實體(類、模塊、函數等等)應該可以擴展,但是不可修改。這個原則具有兩個特征:①是對于擴展是開發的(Open for extension),②對于修改是封閉的(Closed for modification)[ASD]。

  需求的變化,軟件可以相對容易修改來適應需求的變化。

  開放-封閉原則的意思是你設計的時候要盡量讓這個類是足夠好,寫好了就不要去修改了;如果新需求來,我們增加一些類就完事了,原來的代碼能不動則不動。

  但絕對的對修改封閉是不可能的。無論模塊是多么“封閉”,都會存在一些無法對之封閉的變化。既然不可能完全封閉,設計人員必須對于他設計的模塊 對哪種變化封閉做出選擇。他必須先猜測出最有可能發生的變化的種類,然后構造抽象來隔離那些變化[ASD]。等到變化發生時立即采取行動[ASD],即在 發生變化時,就及早去想辦法應對更大變化的可能。

(5)依賴倒轉原則(依賴倒置原則)

  解釋為:抽象不應該依賴細節,細節應該依賴于抽象。說白了,就是針對接口編程。不要對實現編程。具體一點就是接口或抽象類,只要接口是穩定點,那么任何一個更改都不用擔心其它部分受影響,這就使得無論高層模塊還是底層模塊都可以很容易地被復用。

?里氏代換原則

  通俗解釋:一個軟件實體如果使用的是一個父類的話,那么一定適用于其子類,而且它察覺不出父類對象和子類對象的區別。也就是說,父類都被替換為它的子類程序的行為不會發生變化。

  也正因為有了這個原則,使得繼承復用成為了可能,只有當子類可以替換掉父類,軟件單位的功能不會受到影響時,父類才能真正被復用,而子類能夠在父類的基礎上增加新的行為。由于子類的可替換性,父類才使得父類類型的模塊在無需修改的情況下就可以擴展。里氏代換原則使開發封閉成為可能。

  依賴倒轉其實就是誰也不要依靠誰,除了約定的接口,大家都可以靈活自如。依賴倒轉其實可以說是面向對象設計的標志,用哪種語言編寫程序不重要, 如果編寫時考慮的都是如何針對抽象編程而不是針對細節編程,即程序中所有依賴關系都是終止于抽象類或者接口,那就是面向對象的設計,反之那就是過程化的設計。遵循依賴倒轉就是讓程序都依賴抽象,而不是相互依賴。

轉載于:https://www.cnblogs.com/xiaobang/archive/2013/05/29/3105638.html

總結

以上是生活随笔為你收集整理的设计模式 学习笔记(2)单一职责原则、开放封闭原则、依赖倒转原则的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。