黑马程序员技术交流社区

标题: 工厂模式谁了解啊? [打印本页]

作者: 吴泉水    时间: 2011-12-13 14:27
标题: 工厂模式谁了解啊?
看了半天工厂模式还是一知半解,希望看到大家精辟的语言!
作者: 何旭    时间: 2011-12-13 14:37
本帖最后由 何旭 于 2011-12-13 14:38 编辑

首先我们来说工厂模式是什么东西!

其实工厂模式,就是创建东西的嘛!不需要什么理解。怎么来创建,正好我那天写了一个看代码:

首先我们定义一个创建接口
  1. interface Creator
  2.     {
  3.         Product getWork();
  4.     }
复制代码
再定义一个产品接口
  1. public interface Product
  2.     {
  3.         void doWork();
  4.     }
复制代码
分别有一个学生产品和教师产品的实现类
  1. public class ConcreteProduct_Student : Product
  2.     {
  3.         #region IProduct 成员

  4.         public void doWork()
  5.         {
  6.             Console.WriteLine("我是学生");
  7.         }

  8.         #endregion
  9.     }
复制代码
  1. public class ConcreteProduct_Teacher : Product
  2.     {
  3.         #region IProduct 成员

  4.         public void doWork()
  5.         {
  6.             Console.WriteLine("我是老师");
  7.         }

  8.         #endregion
  9.     }
复制代码
再分别有一个创建学生产品和创建教师产品的创建实现类
  1. public class ConcreteCreator_Student : Creator
  2.     {
  3.         #region IWorkFactory 成员

  4.         public Product getWork()
  5.         {
  6.             return new ConcreteProduct_Student();
  7.         }

  8.         #endregion
  9.     }
复制代码
  1. public class ConcreteCreator_Teacher : Creator
  2.     {
  3.         #region IWorkFactory 成员

  4.         public Product getWork()
  5.         {
  6.             return new ConcreteProduct_Teacher();
  7.         }

  8.         #endregion
  9.     }
复制代码
使用的时候这样就行了
  1. class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             ConcreteCreator_Teacher t = new ConcreteCreator_Teacher();
  6.             t.getWork().doWork();
  7.             ConcreteCreator_Student s = new ConcreteCreator_Student();
  8.             s.getWork().doWork();
  9.             Console.ReadLine();
  10.         }
  11.     }
复制代码
输出的结果:

我是老师
我是学生
作者: 吴泉水    时间: 2011-12-13 14:45
何旭 发表于 2011-12-13 14:37
首先我们来说工厂模式是什么东西!

其实工厂模式,就是创建东西的嘛!不需要什么理解。怎么来创建,正好我 ...

Thank you very much!
作者: 何旭    时间: 2011-12-13 14:57
吴泉水 发表于 2011-12-13 14:45
Thank you very much!

为了到首都一游,我冲了!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2