您的位置:首页 > 编程语言 > C#

C#工厂模式的学习(1)简单工厂模式

2018-01-13 09:34 76 查看

C#工厂模式的学习(1)简单工厂模式 http://blog.csdn.net/weixin_38661736/article/details/79049508

C#工厂模式的学习(2)工厂方法模式 http://blog.csdn.net/weixin_38661736/article/details/79050023

毕业也快半年了,但是由于在现在这个公司只有一个人,因此自己一个人在瞎摸索。因此想写个博客记录一下自己的学习日记。

回到正题,工厂模式是C#开发的一种设计模式。主要是方便项目的维护和增加新的功能等。我们在一个项目中,在完成一个功能的时候,我们需要编写一些实现该功能的类,然后在使用的时候,再实例化该类。但是,在一个项目中,如果有很多个功能,分别由不同的类来实现,那么我们是不是可以创建一个类,来保存对其他实现了各种功能的类的实例呢?而我们不需要知道具体的类的实现方法,而只需要调用那个保存了各种实例的类就可以了呢?而这就是简单工厂模式(Simple Factory Pattern )。通俗的说就是有一个专门的类来负责创建实例的过程。下面边看代码边学习。因此我在CSDN上下了一个项目来学习工厂模式。链接为http://download.csdn.net/download/coderjyf/9825340。分享的博主博客地址为http://my.csdn.net/coderjyf。该项目里包含了11个C#的设计模式,分别包括:简单工厂模式、工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式、适配器模式、装饰器模式、代理模式、外观模式、桥街模式。现在,我先根据代码,学习前三个模式。

一、简单工厂模式:

项目包含文件:


首先,MobilePhone.cs文件里面定义了一个抽象方法,方法名称为print                                          


然后,再看Iphone、SmarTisan、xiaoMI三个类,都继承了MobilePhone抽象类,然后重写实现了print方法

对于这个项目来说,有三个不同的手机品牌,但是他们的关键点是都是手机,他们有着一些通用的逻辑,因此我们把它抽取出来,定义一个抽象类来封装他们的相同逻辑。然后在用具体的类来实现这三个不同品牌的手机时,需要继承这个抽象类,实现里面的通用方法。关于抽象类,大家可以看http://blog.csdn.net/dh1221/article/details/45876099和http://blog.csdn.net/ZorroBubble/article/details/16994781。由于有三个手机品牌,而在实际项目里面,我们可能会有更多的类似于这种的情况,而在这样的情形下,我们在调用这些类并实例化的时候,就会感觉到很乱且当要修改或其他操作的时候,会很麻烦。此时,如果我们可以创建一个类,用来保存对这些类的实例的话,那么我们无论是修改或者增加,都只需要在这个类里面进行操作即可,这样会大大减少我们的维护成本。这样的模式称为简单工厂模式,而这个类就叫做工厂类。在这个项目里面,MobilePhoneFactory就是一个工厂类。代码如下图,但是如果传入的参数是一个枚举就会更加好。


实际调用的页面如下,父类出现的地方可以使用子类来实例化。而需要实例化什么类,就从工厂类里面调用即可。


简单工厂模式还是比较简单的,通过上面的代码,很容易就可以理解其中的原理。之后我会继续学习下一个模式:工厂方法模式.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: