久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

??C#零基礎(chǔ)到入門 ??| 帶你認(rèn)識編程中的—23種設(shè)計模式 & 六大設(shè)計原則

 敲代碼的小Y 2021-12-01

設(shè)計模式🎈

設(shè)計模式:是一套被反復(fù)使用,、多數(shù)人知曉的,、經(jīng)過分類編目的、代碼設(shè)計經(jīng)驗的總結(jié),。使用設(shè)計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性,、程序的重用性。設(shè)計模式使代碼開發(fā)真正工程化;設(shè)計模式是軟件工程的基石脈絡(luò),如同大廈的結(jié)構(gòu)一樣,。只有夯實地基搭好結(jié)構(gòu),才能蓋好堅壯的大樓,。也是我們邁向高級開發(fā)人員必經(jīng)的一步。
總結(jié):設(shè)計模式是設(shè)計經(jīng)驗的總結(jié)


🙈創(chuàng)建型:

  1. 單例模式(Singleton Pattern) 保證一個類僅有一個實例,并提供一個訪問它的全局訪問點
  2. 抽象工廠(Abstract Factory) 用于提供一個創(chuàng)建一系列相關(guān)或相互依賴對象的接口,而無需指定他們具體的類.
  3. 建造者模式(Builder) 將一個復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示.
  4. 工廠方法模式(Factory Method) 定義一個用于創(chuàng)建對象接口,讓子類決定將哪一個類實例化.Factory Method使一個類的實例化延遲到其子類.
  5. 原型模式(Prototype) 用原型實例指定創(chuàng)建對象的種類,并且通過拷貝這個原型來創(chuàng)建新的對象,。

🙊結(jié)構(gòu)型:

  1. 適配器模式(Adapter Pattern) 根據(jù)字面意思很好理解.將每一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口.Adapter使得原本接口不兼容而不能一起工作的那些類可以一起工作.
  2. 橋接模式(Bridge Pattern) 將抽象部分與它的實現(xiàn)部分分離,使他們都可以獨立地變化.
  3. 裝飾模式(Decorator Pattern) 動態(tài)的給一個對象添加一些額外的職責(zé).就擴(kuò)展性而言,Decorator模式比生成子類方式更為靈活.
  4. 組合模式(Composite Pattern) 將對象組合成樹形結(jié)構(gòu)以表示"部分-整體"的層次結(jié)構(gòu).Composite使得客戶對單個對象和復(fù)合對象的使用具有一致性.
  5. 外觀模式(Facade Pattern) 為系統(tǒng)中的一組接口提供一個一致的界面,facade模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用.
  6. 享元模式(Flyweight Pattern) 運用共享技術(shù)有效地支持大量細(xì)粒度的對象.
  7. 代理模式(Proxy Pattern) 為其他對象提供一個代理以控制對這個對象的訪問,。

🙉行為型:

  1. 模板方法(Template Method) 定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。Template Method使得子類可以不改變一個算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟,。
  2. 命令模式(Command Pattern) 將一個請求封裝成一個對象,從而使你可用不同的請求對客戶進(jìn)行參數(shù)化;對請求排隊或記錄請求日志,以及支持可取消操作.
  3. 迭代器模式(Iterator Pattern)提供一種方法順序訪問一個聚合對象中各個元素,而又不需要暴露該對象的內(nèi)部表示.
  4. 觀察者模式(Observer Pattern) 定義對象間的一種一對多的依賴關(guān)系,以便當(dāng)一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并自動刷新,。
  5. 解釋器模式(Interpreter Pattern) 給定一個語言,定義它的文法的一種表示,并定義一個解釋器,該解釋器使用該表示來解釋語言中的句子.解釋器模式需要解決的是,如果一種特定類型的問題發(fā)生的頻率足夠高,那么可能就值得將該問題的各個實例表述為一個簡單語言中的句子。這樣就可以構(gòu)建一個解釋器,該解釋器通過解釋這些句子來解決該問題,。比如正則表達(dá)式.
  6. 中介者模式(Mediator Pattern) 用一個中介對象來封裝一系列的對象交互,。中介者使各對象不需要顯式地相互引用,從而使其耦合松散,而且可以獨立地改變它們之間的交互。
  7. 職責(zé)鏈模式(Chain of Responsibility Pattern) 為解除請求的發(fā)送者和接收者之間耦合,而使用多個對象都有機(jī)會處理這個請求.將這些對象連成一條鏈,并沿著這條鏈傳遞該請求,直到有一個對象處理它.
  8. 備忘錄模式(Memento Pattern) 在不破壞封裝性的前提下,捕獲一個對象的內(nèi)部狀態(tài),并在該對象之外保存這個狀態(tài),。這樣以后就可將該對象恢復(fù)到保存的狀態(tài),。
  9. 策略模式(Strategy Pattern) 定義一系列的算法,把它們一個個封裝起來, 并且使它們可相互替換,。本模式使得算法的變化可獨立于使用它的客戶。
  10. 訪問者模式(Visitor Pattern) 表示一個作用于某對象結(jié)構(gòu)中的各元素的操作,。它使你可以在不改變各元素的類的前提下定義作用于這些元素的新操作,。
  11. 狀態(tài)模式(State Pattern)允許一個對象在其內(nèi)部狀態(tài)改變時改變它的行為。對象看起來似乎修改了它所屬的類.

六大設(shè)計原則🎉

(1)單一職責(zé)原則(Single Responsibility Principle)

定義:一個類只負(fù)責(zé)一個功能領(lǐng)域中的相應(yīng)職責(zé),或者可以定義為:就一個類而言,應(yīng)該只有一個引起它變化的原因,。

(2)里氏替換原則(Liskov Substitution Principle)

定義:主張使用抽象和多態(tài) | 所有引用基類(父類)的地方必須能透明地使用其子類的對象,。
1)如果對每一個類型為S的對象o1,都有類型為T的對象o2,使得以T定義的所有程序P在所有的對象o1都代換成o2時,程序P的行為沒有發(fā)生變化,那么類型S是類型T的子類型。
2)只要父類能出現(xiàn)的地方子類就可以出現(xiàn),而且替換為子類也不會產(chǎn)生任何錯誤或異常,使用者可能根本就不需要知道是父類還是子類,。反過來,有子類出現(xiàn)的地方,父類未必就能適合

(3)依賴倒置原則(Dependence Inversion Principle,DIP)

定義:高層模塊不應(yīng)該依賴低層模塊,兩者都應(yīng)該依賴其抽象;抽象不應(yīng)該依賴細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴抽象,其核心思想是:要面向接口編程,不要面向?qū)崿F(xiàn)編程,。

(4)接口隔離原則(Interface Segregation Principle, ISP)

定義:使用多個專門的接口,而不使用單一的總接口,即客戶端不應(yīng)該依賴那些它不需要的接口。

(5)迪米特法則(Law of Demeter, LOD)

定義:盡量減少類與類之間的聯(lián)系
一個軟件實體應(yīng)當(dāng)盡可能少地與其他實體發(fā)生相互作用,。

(6)開閉原則(Open-Closed Principle, OCP)

定義:對擴(kuò)展開放,對修改關(guān)閉
一個軟件實體應(yīng)當(dāng)對擴(kuò)展開放,對修改關(guān)閉,。即軟件實體應(yīng)盡量在不修改原有代碼的情況下進(jìn)行擴(kuò)展

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多