以日志记录实现为例:

具体实现日志类
1。定义一个抽象的日志Log
public abstract class Log
{
   public abstract void Write();
}
2。定义两个具体的日志类
public class EventLog:Log
{
   public override void Write()
   {
      Console.WriteLine("EventLog write sucess !");
   }
}
public class FileLog:Log
{
   public override void Write()
   {
      Console.WriteLine("FileLog write sucess !");
   }
}
具体实现工厂类
1。定义一个抽象工厂类LogFactory
public abstract class LogFactory
{
   public abstract Log Create();
}
2。定义两个具体的工厂类
public class EventFactory:LogFactory
{
   public override EventLog  Create()
   {
      return new EventLog();
   }
}
public class FileFactory:LogFactory
{
   public override FileLog Create()
   {
      return new FileLog();
   }
}

应用程序中调用
public class App
{
   public static void Main(string[] args)
   {
      LogFactory factory=new EventFactory();//
      Log log=factory.Create();//
      log.Write();
   }
}
利用发射机制进一步修改
<appSettings>   
   add key="factoryName" value="EventFactory"></add>
</appSettings>

pubic class App
{
   public static void Main(string[] args)
   {
      string strfactoryName = ConfigurationSettings.AppSettings["factoryName"];    
      LogFactory factory;
      factory = (LogFactory)Assembly.Load("FactoryMethod").CreateInstance("FactoryMethod." + strfactoryName);
      Log log = factory.Create();
      log.Write();
   }
}

参考资料:
http://terrylee.cnblogs.com/archive/2006/01/04/310716.html

转载于:https://www.cnblogs.com/syringa-flz/archive/2007/04/10/707136.html

设计模式学习摘要-抽象工厂相关推荐

  1. 设计模式学习笔记——抽象工厂(Abstract Factory)模式

    设计模式学习笔记--抽象工厂(Abstract Factory)模式 @(设计模式)[设计模式, 设计模式中文名, 设计模式英文名] 设计模式学习笔记抽象工厂Abstract Factory模式 基本 ...

  2. 设计模式C#描述——抽象工厂模式

    设计模式C#描述--抽象工厂模式 阅读此文应先阅读简单工厂模式与工厂方法模式 抽象工厂模式是对象的创建模式,它是工厂方法模式的进一步推广. 假设一个子系统需要一些产品对象,而这些产品又属于一个以上的产 ...

  3. 设计模式二、抽象工厂模式

    设计模式part2 1.     抽象工厂模式 工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题, ...

  4. JavaScript 23 种设计模式之 4 抽象工厂模式

    JavaScript 23 种设计模式之 4 抽象工厂模式 概念与特点 结构与实现 应用场景 应用实例 总结 概念与特点 概念: 提供一组相关或相互依赖对象的接口.抽象工厂模式是工厂方法模式的升级版, ...

  5. c#设计模式学习1之工厂模式

    c#设计模式学习1之简单工厂 进入程序员这个行业快一年了,写的程序就那么多,一直感觉写的程序没有质的飞跃,看看高手人家的程序,感觉和自己写的差的很大,什么n层了等,看起来都费力,仔细琢磨可能是设计模式 ...

  6. 【设计模式】之抽象工厂模式详解与应用(三)

    开心一刻 [问:"怎么样才能给足男人面子"? 神回复:"露出腿上的淤青啊".] 课程介绍 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工 ...

  7. 【一】Java 设计模式学习记录: 工厂模式

    文章目录 一.设计模式的分类 二.工厂模式 2.1 简单工厂模式 2.1.1 解决的问题 2.1.2 简单工厂模式是什么 2.1.3 优缺点 2.2 工厂方法模式 2.2.1 解决的问题 2.2.2工 ...

  8. 《软件架构与设计模式》关于 抽象工厂模式 的一个小例子

    下面是题目的要求: 根据上面的要求,我首先是画出了UML类图: 接着,根据上面的UML类图写出源代码: 1.抽象产品类 该类定义了产品的共性,所有的具体产品都要实现这个类 1 abstract cla ...

  9. 设计模式之二抽象工厂设计模式

    继上篇简单工厂设计模式之后,今天继续讲解抽象工厂设计模式.在简单工厂中,我们的工厂类一次只可以处理一类产品.那么如果我们想处理多类产品,简单工厂是满足不了的.必须要用抽象工厂设计模式. 我们先从概念上 ...

最新文章

  1. 高级 Linux 命令精通指南
  2. UTF-8,UTF-16和UTF-32
  3. nyoj 776 删除元素
  4. Excel基础操作(五)--图表基础
  5. 求解带时间窗车辆路径问题的多目标模因算法
  6. 可怕的乖孩子_小说《可怕的乖孩子》讲了一个什么故事?
  7. java中为final变量赋值的几种方式
  8. linux cd 命令案例,15个关于Linux的‘cd’命令的练习例子
  9. mac版mysql 1290_Mac 终端下mysql load data infile 文件路径 into table 表名称 操作,[Error Code] 1290 - The MyS...
  10. resin端口错误问题
  11. 2015-12-01 存储过程
  12. Thinkpad 笔记本VMware Workstation 安装虚拟机出现“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”解决方法
  13. 9.2. FreeSWITCH
  14. 第六届华为创新杯编程大赛第二轮(2014.4.29)
  15. 局域网计算机不能共享常见问题
  16. 洛谷p1179数字统计
  17. 编写程序解决“百钱买百鸡”问题。公鸡五钱一只,母鸡三钱一只,小鸡一钱三只,现有百钱欲买百鸡,共有多少种买法?
  18. C/C++快速读写磁盘数据的方法
  19. 在UE5中创建一个受战锤启发的角色
  20. mvdbos php spider,yemtao

热门文章

  1. python123下载失败_安装python3.5时出现严重错误无法完成安装,请问这个是什么情况?怎么解决??...
  2. QQ浏览器下拉词推广是什么?
  3. 64如何传入后台_如何保证API接口数据安全?
  4. 中fuse_一种用于将mRNA快速转染到活细胞细胞质中的融合试剂
  5. python中类的定义_python 类中定义类
  6. Windows 8 Directx 开发学习笔记(八)要有光
  7. LTE学习:同步信号
  8. 组件的data属性 (有别于Vue实例的data属性)
  9. vs2002 vs2003 可能存在的问题以及解决办法!
  10. 【原创】Git版本控制器的基本使用