設(shè)計模式之—簡單工廠設(shè)計模式

設(shè)計模式之—簡單工廠設(shè)計模式

ID:40313362

大?。?15.00 KB

頁數(shù):9頁

時間:2019-07-30

設(shè)計模式之—簡單工廠設(shè)計模式_第1頁
設(shè)計模式之—簡單工廠設(shè)計模式_第2頁
設(shè)計模式之—簡單工廠設(shè)計模式_第3頁
設(shè)計模式之—簡單工廠設(shè)計模式_第4頁
設(shè)計模式之—簡單工廠設(shè)計模式_第5頁
資源描述:

《設(shè)計模式之—簡單工廠設(shè)計模式》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、設(shè)計模式之—簡單工廠設(shè)計模式今天分享設(shè)計模式中最簡單的一種模式簡單工廠模式。先從面向?qū)ο笳f起,面向?qū)ο笥腥筇匦裕豪^承,封裝,多態(tài)。所謂封裝:在面向?qū)ο笳Z言中,我們都是以類來組織代碼,類中定義了屬性和方法,我們在調(diào)用的時候只需要去使用對象的方法名或者屬性名就可以了,而不必甚至不需要知道方法的具體實現(xiàn),類比生活中的例子,榨汁機。我們只知道用它可以榨果汁,放個蘋果給我們一杯蘋果汁,放個桔子給我們一杯桔子汁就可以了。我們不必要去關(guān)心榨汁機是怎么去工作的。所謂繼承:就是子類繼承了父類,父類所有的非私有的方法和屬性,子類都可以拿來直接使用。就

2、好比生活中,父親給兒子留了一筆遺產(chǎn)。你可以直接使用這筆錢而不需要去創(chuàng)造這筆錢然后在去使用。所謂多態(tài):一個類可以有多個子類,而每個子類只能由一個父類,就好比。一個父親可以有多個兒子,而每個兒子只可以有一個父親。對于多態(tài)我們有2種理解。第一種是不同的人對同一件事所做的不同反應(yīng),例如工作,對于農(nóng)民來說就是種地,科學(xué)家搞科研,工人上班,學(xué)生做作業(yè)。第二種是同一個人在不同情況下,具有不同的身份和角色,例如同樣是你,在公司你可能是員工,在家里你是你父母的兒子,在路上你是行人。先來看一個簡單的例子:我們首先定義一個父類Person類:///

3、mmary>///定義父類Person///publicclassPerson{publicstringName{get;set;}publicintAge{get;set;}///

///自我介紹///publicvoidSayHi(){Console.WriteLine("大家好我是"+Name+",我今年"+Age+"歲了!");}}定義2個子類,一個Student類,一個Teacher類publicclassStudent:Person{}publicclassTeac

4、her:Person{}在控制臺中訪問:staticvoidMain(string[]args){Students=newStudent();s.Name="張三";s.Age=20;s.SayHi();}輸出:可以看出子類是可以使用父類的非私有的屬性和方法。當(dāng)然老師的自我介紹和學(xué)生自我介紹肯定不一樣。如果我們要實現(xiàn)老師的自我介紹是大家好。我是XX老師,我今年工作幾年了。學(xué)生的自我介紹是大家好。我是某某學(xué)生,我今年多少歲了,應(yīng)該怎么做呢。如下圖:編譯器會有警告,因為我們在基類中已經(jīng)使用了SayHi方法來做自我介紹。為了能更好的解決問

5、題。我們就要用到多態(tài)了。我們把基類Person類改寫成抽象類,把基類中的SayHi方法改寫成抽象方法。直接上圖:///定義父類Person///publicabstractclassPerson{publicstringName{get;set;}publicintAge{get;set;}///

///自我介紹/////publicvoidSayHi()//{//Console.WriteLine("大家好我是"+Name+",我今年"+Age+"歲了!");//}///

6、ummary>///抽象方法,自我介紹///抽象方法沒有具體實現(xiàn),只能通過子類覆寫來實現(xiàn)。///publicabstractvoidSayHi();}子類publicclassTeacher:Person{publicintYearOfWork{get;set;}publicoverridevoidSayHi(){Console.WriteLine("大家好我是"+Name+"老師,我工作"+YearOfWork+"年了!");}}publicclassStudent:Person{///

///

7、重寫基類自我介紹方法///

publicoverridevoidSayHi(){Console.WriteLine("大家好我是"+Name+",我今年"+Age+"歲了!");}}在Main方法中定義如下staticvoidMain(string[]args){Teachert=newTeacher();t.Name="AAA";t.YearOfWork=5;t.SayHi();Personp=newTeacher(){Age=18,Name="李四",YearOfWork=5};p.SayHi();}輸出結(jié)果如

8、上圖我們可以看到p和t都是調(diào)用的teacher類中的sayhi方法。這就是多態(tài)。子類通過覆寫父類中的抽象方法或者虛方法來實現(xiàn)。這個也叫里氏替換原則就是凡是父類出現(xiàn)的地方子類都可以出現(xiàn)。試想一下如果Person類不定義為抽象類。以上2個

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。