歷時將近3個月的c#與設計模式的學習終於結束了,有感而發,寫下部落格:
設計模式的學習和之前的計算機學習專案大不一樣:首次採用了結組學習的方法--有些像我們學習自考時的學習模式。
設計模式剛開始的時候,我甚至連附錄裡的物件導向基礎還有些搞不懂(和前面c#學習操之過急有一點關係);而到了開頭幾個模式:比如裝飾模式中的傳參、方法內的巢狀、還有一些繼承關係把我搞得暈頭轉向......不過也不知道怎麼回事,自己後面學著學著,問題都開始迎刃而解了。而當時我們的學習方式是「搞懂例子中**的運**況和順序」,因此也算是繼續對c#學習的延伸吧,而且幫助很大,自己對繼承、抽象的理解更加透徹了。
另外在第一遍學習中,我並沒有寫太多部落格:這個倒不是因為我沒總結,而是因為設計模式的學習有教材,我平時更喜歡把自己所想寫到課本上,這樣看起來更加方便。
設計模式的第二遍的學習則是需要轉換方向:將重點放入對模式的理解,而這與我們第一遍學習的方法又不太一樣了,因此自己又調整了差不多半周才開始投入到模式總結上。不過還好,借助網路的查詢與理解,自認為學習過程問心無愧。
下面我將對c#和設計模式(**的執行邏輯)中的某些概念進行小小的總結,也算是將之前學c#中不了解的地方再強化理解一番:
1.抽象類?介面?
設計模式中有很多「定義乙個xx的介面」,但這些所謂的介面其實在**中並不是介面--在書中,用到真正的介面(inte***ce)類的地方少之又少,而更多的則是乙個抽象類。這些抽象類的作用是給所繼承的子類提供乙個規範--即繼承於這個抽象類的子類必須要重寫父類的方法,這就在命名上得到了規範。
這麼看來,其實二者的作用是差不多的:都是為要實現的類提供標準。
2.構造方法?
3.傳參?
可能會有同學問了,這個有什麼可疑惑的啊,我們在vb中也遇到過呀?嗯...到了設計模式中,由於開始強調物件這一概念,因此「方法內包含的引數是某個物件」的情況開始變得顯眼起來,舉個例子:
class finery:person
...}
class trouser : finery
}class shoes : finery
}
客戶端的**:
static void main(string args)
這幾行**的大致含義就是將snk物件被作為乙個引數傳給tos物件的decorate方法中,其實本身思路不難理解,只是中間存在的乙個過程:在客戶端中例項化的物件名是snk,而傳到decorate方法的過程中,變成了component引數傳到了方法內。
在這之後的設計模式學習,我遇到了更多這種情況,因此很感謝我們小組當時能對這些問題的「死纏爛打」,才有了後面對c#執行更加深刻的認識。
問題還有很多很多,也許現在我們剛剛啟程,但只要擁有一顆充滿求知慾的心,再多的問題也會迎刃而解。做好自己,調整心態,腳踏實地地前進吧。
小桐學設計模式 單例模式
單例模式分為兩種,懶漢式和餓漢式。首先看懶漢式 public class a public static a getinstance return a 再來看餓漢式。public class a public static a getinstance 懶漢式在執行getinstance方法時,判斷條...
C 與設計模式知識總結
c 與設計模式,都是新接觸的東西,有很多小的知識點需要理解 記住。下面自己總結一下讓印象更深刻!相同的地方 1.ref和out都是傳位址的,所以都會改變實參的值。2.方法定義和呼叫方法均必須顯式使用 ref out關鍵字。不同的地方 1.out方法需要必須對形參進行初始化或者賦值,否則編譯出錯。2....
學完c 基礎後的總結
結構與類的區別 1 結構是值型別,類是引用型別 2 結構不能從另乙個結構或類繼承,也不能作為乙個類得基類,類可以 3 結構的建構函式必須帶引數,類可以不帶 4 結構的例項化可以不使用new運算子類不可以 5 結構可以賦null值。知道使用列舉的好處和用法,列舉中的parse方法可以將乙個或多個列舉常...