设计模式学习笔记(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 }
相关文章
相关标签/搜索