C#模板设计模式使用和学习心得
模板設(shè)計模式:
模版方法模式由一個抽象類和一個(或一組)實現(xiàn)類通過繼承結(jié)構(gòu)組成,抽象類中的方法分為三種:
- 抽象方法:父類中只聲明但不加以實現(xiàn),而是定義好規(guī)范,然后由它的子類去實現(xiàn)。
- 模版方法:由抽象類聲明并加以實現(xiàn)。一般來說,模版方法調(diào)用抽象方法來完成主要的邏輯功能,并且,模版方法大多會定義為final類型,指明主要的邏輯功能在子類中不能被重寫。
- 鉤子方法:由抽象類聲明并加以實現(xiàn)。但是子類可以去擴展,子類可以通過擴展鉤子方法來影響模版方法的邏輯。 抽象類的任務(wù)是搭建邏輯的框架,通常由經(jīng)驗豐富的人員編寫,因為抽象類的好壞直接決定了程序是否穩(wěn)定性。 實現(xiàn)類用來實現(xiàn)細節(jié)。抽象類中的模版方法正是通過實現(xiàn)類擴展的方法來完成業(yè)務(wù)邏輯。只要實現(xiàn)類中的擴展方法通過了單元測試,在模版方法正確的前提下,整體功能一般不會出現(xiàn)大的錯誤。
架構(gòu)中經(jīng)常使用的一種設(shè)計模式,很好的發(fā)揮了面向抽象程序設(shè)計,實現(xiàn)了“高類聚,低耦合”的架構(gòu)思想。所以非常值得研究,學(xué)習(xí)和實踐。
開篇:跑題時間
雖然要跑題也先放上幾張來源于網(wǎng)絡(luò)的PPT正示一下主題,免得一下跑題太遠收不回來。
開始正式跑題了!這篇文章不想只談技術(shù),一半當(dāng)成總結(jié)吧。話說但凡愛裝逼的老碼農(nóng)無不一張口設(shè)計模式、AOP、IOC(DI)等名詞成天掛在口上。其實技術(shù)和工作年限沒有太直接的聯(lián)系,你沒干上架構(gòu)師的活(崗位),說的吹的再順溜也等于是無用功。我干程序員頭三年是做傳統(tǒng)的行業(yè)管理軟件“酒店管理系統(tǒng)”,當(dāng)時是使用Delphi+Oracle做的,當(dāng)年“聰明的程序員”都愛用Delphi,我一拖控件就是三年,一直都是面向過程設(shè)計,非科班出身,野生程序員,所以轉(zhuǎn)了C#之后又三年才開始慢慢面向?qū)ο笤O(shè)計和編程,但是我始終沒有面向抽象編程,也不明白為啥要使用接口、抽象類。C#用了五年的樣子開始學(xué)設(shè)計模式和經(jīng)常重構(gòu)了以為達到了“看山還是山,看水還是水”的境界,其實差老鼻子遠了。現(xiàn)在基本上.net用了有10年了,可惜一直沒有遇上大項目,一直在小作坊,小公司里打轉(zhuǎn)。曾經(jīng)有一次機會,團隊里來了一個架構(gòu)師,但當(dāng)時離開了那個團隊,因為新來的總監(jiān)套路太多太厲害,加上我沖撞了COO,作為非正式的部門經(jīng)理被迫離職。一直沒有好好的進行架構(gòu)設(shè)計,直到遇到現(xiàn)在的系統(tǒng),非常佩服系統(tǒng)第一代的架構(gòu)師,思想非常純正,項目里也使用了模板設(shè)計模式。現(xiàn)在的系統(tǒng)架構(gòu)沿用了十幾年了,一直很穩(wěn)定,開放性很好,導(dǎo)致后續(xù)兩任架構(gòu)師都超越不了,后來就一直沒有架構(gòu)師了;現(xiàn)在公司的崗位目標(biāo)也是工控架構(gòu)師,但是看了半年的公開課,系統(tǒng)的學(xué)習(xí)了架構(gòu)師知識體系這后,我認(rèn)為架構(gòu)師只能是養(yǎng)成的。話說最近醒悟了,不是ctrl+C,ctrl+V天天都這樣猛干吧,老碼農(nóng)得在他的崗位上提升自己的“領(lǐng)導(dǎo)力”,努力讓生態(tài)越來越好。
找不到哪里看過的那張ctrl+C,ctrl+V一把梭的圖了,暫時用這個代替了。因為今天第二次看“C#/.Net架構(gòu)師設(shè)計模式特訓(xùn)【軟謀教育】”的模板設(shè)計模式的公開課,雖然公開課都是重復(fù)的反復(fù)的講那些知識,但是每看一次總是有新的心得。最近結(jié)合幾次實踐,越發(fā)覺得有寫文加深印象的必要,于是有了此篇隨筆。我的關(guān)注點是:為什么架構(gòu)師這么重視這個模式,實踐意義在哪里?作為一個油膩的中年大叔看來必須有點追求了,經(jīng)常性的口是心非,不按套路出牌,不按計劃不走尋常路...,你以為多特別其實一直很失敗。本來準(zhǔn)備寫個年終總結(jié)的,但是好久都沒有立長志了,一直都沒按計劃來。呵呵。其實是有計劃的,只是實現(xiàn)起來是跨年的,身上背了幾十萬債務(wù)...好吧還是收回來,別倒苦水了。我只是說任何時候都不能有不腳踏實地的理由,應(yīng)該不浮躁,每天進步一點點吧。
主題之普通方法/虛方法/抽象方法/
這是一篇沒有寫完的隨筆,最近工作比較忙,現(xiàn)在想放棄了。不寫了,具體案例其實另外兩篇隨筆已經(jīng)寫了,感興趣可以看看:
http://www.cnblogs.com/datacool/p/datacool_2017_pda.html
http://www.cnblogs.com/datacool/p/datacool_2017_gdi.html
轉(zhuǎn)載于:https://www.cnblogs.com/datacool/p/8216832.html
總結(jié)
以上是生活随笔為你收集整理的C#模板设计模式使用和学习心得的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 返回顶端
- 下一篇: iOS企业版使用第三方实现自动更新版本