設計模式學習筆記(1)——簡單工廠模式

說明(2018-4-3 20:25:16):sql

1. 數據結構看到了樹,好像後面的都是僞代碼了,感受暫時用不上。另外還有一個隊列的實現沒有敲代碼,不過目前已經對指針有了一個深入的瞭解了。準備先放一放數據結構,開始C#的繼續深刻。設計模式

2. 其實一開始看數據結構,是由於asp.net後面講線程用到了委託,理解很困難,因而去看三層,結果又用到事件,更是稀裏糊塗,後來去看基礎班的委託與事件,雖然講了一大堆,仍是模模糊糊,不知道怎麼實際利用,內心很排斥。安全

3. 因此一直挖底層到C語言的指針,由於教程里老是有意無心的提到,委託是一種類型安全的指針。因此對委託有困惑的,建議學習一下數據結構,比從網上找的各類舉例子要深入的多。數據結構

4. 下午想複習一下網頁的用戶列表,發現電腦沒有sqlserver,因而準備裝個簡裝版,用SQLManagementStudio安裝完,死活本地登陸不了,sql服務裏連個選項都沒有,折騰了倆小時,最後放棄,從之前的電腦裏考過來一個4GB的sqlserver2008R2,安裝了一個小時後終於可以登陸了,仍是原版靠譜啊!不過爲毛VS和sqlserver都這麼大啊,VS2013有6個G,sqlserver2008有4.5個G,裏面都裝了什麼好東西哇?asp.net

5. 安裝的這段時間裏,無聊看了一會趙建宇講的簡單工廠設計模式,他的另一期裏的兩個設計模式視頻都只有聲音,屏幕不動,只能先看這個了。ide

6. 這個模式的核心就是須要一個抽象父類,產品的類紛紛去實現它,而後用一個算是工廠的函數,輸入參數,把產品子類賦值給了抽象父類(用到了里氏轉換)。函數

 

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace _00練習
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             string brand = Console.ReadLine();
14             Computer c = Test(brand);
15             c.SayHello();
16             Console.ReadKey();
17         }
18         static Computer Test(string brand)
19         {
20             Computer c = null;
21             switch (brand)
22             {
23                 case "Lenovo":
24                     c = new Lenovo();
25                     break;
26                 case "Dell":
27                     c = new Dell();
28                     break;
29                 case "IBM":
30                     c = new IBM();
31                     break;
32             }
33             return c;
34         }
35 
36     }
37 
38     abstract class Computer
39     {
40         public abstract void SayHello();
41     }
42 
43 
44     class Lenovo : Computer
45     {
46         public override void SayHello()
47         {
48             Console.WriteLine("我是聯想");
49         }
50     }
51     class Dell : Computer
52     {
53         public override void SayHello()
54         {
55             Console.WriteLine("我是戴爾");
56         }
57     }
58     class IBM : Computer
59     {
60         public override void SayHello()
61         {
62             Console.WriteLine("我是IBM");
63         }
64     }
65 }
相關文章
相關標籤/搜索