简单工厂模式理解1
来源:互联网 发布:java找众数 编辑:程序博客网 时间:2024/05/23 00:08
先上图
如上图可知简单工厂模式里的工厂类里要有接口类或父类。即会涉及到所有想实例化的类和基类(接口))。
在看这句话的理解:
简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。
-----------------------
设计代码大体如下:
1:设计一个基类或接口
该基类或接口中包含一些共同的属性和方法
2:设计子类继承基类
在子类中要设计自己的具体的方法
3:工厂类中要有一个方法用来进行初始化哪个子类一般有一个参数来进行传递
------------------------------------------------------------------------------
1 /// <summary>
2 /// 抽象产品类:上衣
3 /// </summary>
4 public interface ICoat
5 {
6 void GetYourCoat();
7 }
--------------------------------------------------------------
具体产品类代码
2{
3 /// <summary>
4 /// 具体产品类:商务上衣
5 /// </summary>
6 public class BusinessCoat:ICoat
7 {
8 public void GetYourCoat()
9 {
10 Console.WriteLine("商务上衣");
11 }
12 }
13
14 /// <summary>
15 /// 具体产品类:时尚上衣
16 /// </summary>
17 public class FashionCoat : ICoat
18 {
19 /// <summary>
20 /// 实现ICoat中定义的方法
21 /// </summary>
22 /// <returns></returns>
23 public void GetYourCoat()
24 {
25 Console.WriteLine("时尚上衣");
26 }
27 }
28}
-----------------------------------
简单工厂模式中最核心的部分:工厂类
2{
3 /// <summary>
4 /// 简单工厂模式中的核心部分:工厂类
5 /// </summary>
6 public class Factory
7 {
8 public ICoat CreateCoat(string styleName)
9 {
10 switch (styleName.Trim().ToLower())
11 {
12 case "business":
13 return new BusinessCoat();
14 case "fashion":
15 return new FashionCoat();
16 default :
17 throw new Exception("还没有你要的那种衣服");
18 }
19 }
20 }
21}
---------------------------
再看一下客户在调用的时候的代码
2 /// 客户类
3 /// </summary>
4 class Client
5 {
6 static void Main(string[] args)
7 {
8 ICoat food;
9 try
10 {
11 Factory factory = new Factory();
12
13 Console.Write("我要的是时尚上衣/t");
14 food = factory.CreateCoat("fashion");
15 food.GetYourCoat();
16
17 }
18 catch (Exception ex)
19 {
20 Console.WriteLine(ex.Message);
21 }
22 }
23 }
---------------------
在客户端的代码中有我们就可以根据具体的参数,返回我们希望返回的对象,将"new"操作推迟到工厂类中实现。
这里,参数我直接写上了,我们其实可以将这个参数写到一个xml文件中,如app.config文件中,动态的读出来,需要穿另外一种衣服了,只需要打开app.config文件,修改里面的值就行了,不需要项目重新编译。这样这个小程序就能够适应一定的变化了(在上传上去的代码中我会修改一下)。其实它也是设计模式正要解决的问题,在不修改代码的情况下,使项目能够适应一定的客户需求变化。注意,是一定的,并非全部。
- 简单工厂模式理解1
- 工厂模式简单理解
- 简单理解抽象工厂模式
- 简单理解抽象工厂模式
- 工厂模式的简单理解
- java 设计模式理解 (1)简单工厂模式
- 简单理解设计模式之工厂模式
- 设计模式理解之工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)
- 1,工厂模式--简单工厂
- 设计模式笔记1 - 简单工厂 和 工厂模式理解以及使用
- 简单工厂解析 好理解的简单工厂模式
- 简单工厂模式和抽象工厂模式的通俗理解
- 简单工厂模式和抽象工厂模式的通俗理解
- 对抽象工厂模式的简单理解
- 错误的理解了简单工厂模式
- 设计模式之简单工厂的理解
- 我理解中的简单工厂模式
- 工厂设计模式的简单理解
- Android SurfaceView 绘图覆盖刷新及脏矩形刷新方法
- [译]新的web应用:播下web3.0的种子
- Webbrowser中模拟连接点击(非鼠标模拟)
- PThread编程
- 总算是把Struts2的乱码问题解决了!!!
- 简单工厂模式理解1
- 控件按钮的页面代码
- 突破ftp单线程下载限制
- Jquery ready function Tester.
- 各大音乐社区api接口(MP3&LRC)
- 网络编程之C10K问题
- Latent semantic Indexing(LSI)
- 什么是Javabean
- u-boot-2010.03在LT2440上的移植详解 (十)