【C#】设计模式的学习征途系列文章目录(2019版)
Photo :Design Patterns
文?| Edison Zhou
2017年,我開始系統(tǒng)學(xué)習(xí)設(shè)計(jì)模式,參考了《大話設(shè)計(jì)模式》、《設(shè)計(jì)模式的藝術(shù)》等書籍,并通過C#語言寫了各種模式的代碼示例(已經(jīng)放到了我的github上并收獲了120+個(gè)star)。在日常工作上進(jìn)行Code Review時(shí)會(huì)時(shí)常通過一些學(xué)習(xí)過的設(shè)計(jì)模式來指導(dǎo)重構(gòu)或給出意見,感覺系統(tǒng)學(xué)習(xí)過和沒有學(xué)習(xí)過還是有一點(diǎn)區(qū)別。雖然仍然有很多的遺漏和不足,仍然在此將其總結(jié)和優(yōu)化閱讀目錄分享給各位有需要的初學(xué)者朋友!
1? 預(yù)備篇??
下文來自于一位朋友圣杰,帶你通過一個(gè)類圖在5分鐘內(nèi)熟悉UML類圖:
UML類圖10分鐘快速入門
2? 創(chuàng)建型模式篇
創(chuàng)建型模式是一類最常用的設(shè)計(jì)模式,在軟件開發(fā)中應(yīng)用非常廣泛。創(chuàng)建型模式將對(duì)象的創(chuàng)建和使用分離,在使用對(duì)象時(shí)無需關(guān)心對(duì)象的創(chuàng)建細(xì)節(jié),從而降低系統(tǒng)的耦合度,讓設(shè)計(jì)方案更易于修改和擴(kuò)展。每一個(gè)創(chuàng)建型模式都在試圖回答3個(gè)問題:3W -> 創(chuàng)建什么(What)、由誰創(chuàng)建(Who)和何時(shí)創(chuàng)建(When)。
①?設(shè)計(jì)模式的征途-01.單例(Singleton)模式
②?設(shè)計(jì)模式的征途-02.簡(jiǎn)單工廠(Simple Factory)模式
③?設(shè)計(jì)模式的征途-03.工廠方法(Factory Method)模式
④?設(shè)計(jì)模式的征途-04.抽象工廠(Abstract Factory)模式
⑤?設(shè)計(jì)模式的征途-05.原型(Prototype)模式
⑥?設(shè)計(jì)模式的征途-06.建造者(Builder)模式
3? 結(jié)構(gòu)型模式篇
結(jié)構(gòu)型模式所描述的是如何將類和對(duì)象結(jié)合在一起來形成一個(gè)更大的結(jié)構(gòu),它描述兩種不同的事物:類和對(duì)象,根據(jù)這一點(diǎn),可分為類結(jié)構(gòu)型和對(duì)象結(jié)構(gòu)型模式。
類結(jié)構(gòu)型模式關(guān)心類的組合,由多個(gè)類可以組合成一個(gè)更大的系統(tǒng),在類結(jié)構(gòu)型模式中一般只存在繼承關(guān)系和實(shí)現(xiàn)關(guān)系;
對(duì)象結(jié)構(gòu)型模式關(guān)心類與對(duì)象的組合,通過關(guān)聯(lián)關(guān)系使得在一個(gè)類中定義另一個(gè)類的實(shí)例對(duì)象,然后通過該對(duì)象調(diào)用其方法。
①?設(shè)計(jì)模式的征途-07.適配器(Adapter)模式
②?設(shè)計(jì)模式的征途-08.橋接(Bridge)模式
③?設(shè)計(jì)模式的征途-09.組合(Composite)模式
④?設(shè)計(jì)模式的征途-10.裝飾(Decorator)模式
⑤?設(shè)計(jì)模式的征途-11.外觀(Facade)模式
⑥?設(shè)計(jì)模式的征途-12.享元(Flyweight)模式
⑦?設(shè)計(jì)模式的征途-13.代理(Proxy)模式
4? 行為型模式篇
行為型模式用于描述程序在運(yùn)行時(shí)復(fù)雜的流程控制,即描述多個(gè)類或?qū)ο笾g怎樣相互協(xié)作共同完成單個(gè)對(duì)象都無法單獨(dú)完成的任務(wù),它涉及算法與對(duì)象間職責(zé)的分配。
行為型模式分為類行為模式和對(duì)象行為模式,前者采用繼承機(jī)制來在類間分派行為,后者采用組合或聚合在對(duì)象間分配行為。由于組合關(guān)系或聚合關(guān)系比繼承關(guān)系耦合度低,滿足“合成復(fù)用原則”,所以對(duì)象行為模式比類行為模式具有更大的靈活性。
①?設(shè)計(jì)模式的征途-14.職責(zé)鏈(Chain of Responsibility)模式
②?設(shè)計(jì)模式的征途-15.觀察者(Observer)模式
③?設(shè)計(jì)模式的征途-16.訪問者(Visitor)模式
④?設(shè)計(jì)模式的征途-17.模板方法(Template Method)模式
⑤?設(shè)計(jì)模式的征途-18.策略(Strategy)模式
⑥?設(shè)計(jì)模式的征途-19.命令(Command)模式
⑦?設(shè)計(jì)模式的征途-20.備忘錄(Memento)模式
⑧?設(shè)計(jì)模式的征途-21.迭代器(Iterator)模式
⑨?設(shè)計(jì)模式的征途-22.中介者(Mediator)模式
⑩?設(shè)計(jì)模式的征途-23.解釋器(Interpreter)模式
5? 代碼整潔之道
《代碼整潔之道》主要講述了一系列行之有效的整潔代碼操作實(shí)踐。軟件質(zhì)量,不但依賴于架構(gòu)及項(xiàng)目管理,而且與代碼質(zhì)量緊密相關(guān)。這一點(diǎn),無論是敏捷開發(fā)流派還是傳統(tǒng)開發(fā)流派,都不得不承認(rèn)。這本書的閱讀對(duì)象為一切有志于改善代碼質(zhì)量的程序員,書中介紹的規(guī)則均來自作者Bob大叔多年的實(shí)踐經(jīng)驗(yàn),涵蓋從命名到重構(gòu)的多個(gè)編程方面,雖為一“家”之言,然誠有可資借鑒的價(jià)值。下文是我學(xué)習(xí)《代碼整潔之道》一書的讀書筆記以及.NET平臺(tái)下代碼規(guī)范插件StyleCop.Analyzer的使用:
《代碼整潔之道》(Clean Code)?讀書筆記
“細(xì)節(jié)之中自有天地,整潔成就卓越代碼”
參考資料
劉偉,《設(shè)計(jì)模式的藝術(shù)—軟件開發(fā)人員的內(nèi)功修煉之道》
程杰,《大話設(shè)計(jì)模式》
Robert Martin,《代碼整潔之道》
示例代碼
GitHub:https://github.com/EdisonChou/DesignPattern.Samples.CSharp
The End
「?碼字不易,也希望各位看官看完覺得還行就在本文右下方順手點(diǎn)個(gè)“在看”,那就是對(duì)我最大的鼓勵(lì)!如果覺得很好,也可以轉(zhuǎn)發(fā)給你的朋友,讓更多人看到,獨(dú)樂樂不如眾樂樂,是吧?」
往期精彩回顧
.NET Core on K8S學(xué)習(xí)與實(shí)踐系列文章索引目錄
.NET Core 微服務(wù)學(xué)習(xí)與實(shí)踐系列文章索引目錄
【資料】2019 .NET China Conf 大會(huì)資料下載
【視頻】2019 .NET China Conf 大會(huì)視頻發(fā)布
2019?.NET?China?Conf 路一直都在,社區(qū)會(huì)更好
基于Jenkins的開發(fā)測(cè)試全流程持續(xù)集成實(shí)踐
基于Jenkins Pipeline的.NET Core持續(xù)集成實(shí)踐
【導(dǎo)讀】我讀經(jīng)典,心曠神怡 -?經(jīng)典書籍讀后感匯總
【導(dǎo)讀】我的詩和遠(yuǎn)方?- 也讀唐詩與旅游游記匯總
點(diǎn)個(gè)【在看】和他人一起分享
總結(jié)
以上是生活随笔為你收集整理的【C#】设计模式的学习征途系列文章目录(2019版)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Steeltoe 2.4新增代码生成工具
- 下一篇: 关于C#异步编程你应该了解的几点建议