设计模式学习笔记——简单工厂模式

Posted Jacklovely

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式学习笔记——简单工厂模式相关的知识,希望对你有一定的参考价值。

说明(2018-4-3 20:25:16):

1. 数据结构看到了树,好像后面的都是伪代码了,感觉暂时用不上。另外还有一个队列的实现没有敲代码,不过目前已经对指针有了一个深刻的了解了。准备先放一放数据结构,开始C#的继续深入。

2. 其实一开始看数据结构,是因为asp.net后面讲线程用到了委托,理解很困难,于是去看三层,结果又用到事件,更是稀里糊涂,后来去看基础班的委托与事件,虽然讲了一大堆,还是模模糊糊,不知道怎么实际利用,心里很排斥。

3. 所以一直挖底层到C语言的指针,因为教程里总是有意无意的提到,委托是一种类型安全的指针。所以对委托有困惑的,建议学习一下数据结构,比从网上找的各种举例子要深刻的多。

4. 下午想复习一下网页的用户列表,发现电脑没有sqlserver,于是准备装个简装版,用SQLManagementStudio安装完,死活本地登录不了,sql服务里连个选项都没有,折腾了俩小时,最后放弃,从以前的电脑里考过来一个4GB的sqlserver2008R2,安装了一个小时后终于能够登录了,还是原版靠谱啊!不过为毛VS和sqlserver都这么大啊,VS2013有6个G,sqlserver2008有4.5个G,里面都装了什么好东西哇?

5. 安装的这段时间里,无聊看了一会赵建宇讲的简单工厂设计模式,他的另外一期里的两个设计模式视频都只有声音,屏幕不动,只能先看这个了。

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 }

 

以上是关于设计模式学习笔记——简单工厂模式的主要内容,如果未能解决你的问题,请参考以下文章

[大话设计模式]学习笔记——简单工厂模式

工厂模式学习笔记

设计模式学习笔记——简单工厂模式

简单工厂模式 - 学习笔记

《设计模式》学习笔记2——简单工厂模式

设计模式笔记1:简单工厂模式