C#设计模式之工厂方法模式
2017-07-10 12:53
459 查看
using System; using System.Collections.Generic; using System.Linq; using System.Text; //工厂方法模式实例 namespace Factory_event { class Program { static void Main(string[] args) { Console.WriteLine("工厂方法模式实例:"); LoggerFactory factory; Logger logger; factory = new FileLoggerFactory();//可引入配置文件实现 logger = factory.CreateLogger(); logger.WriteLog();//结果:文件日志记录 // factory = new DatabaseLoggerFactory(); logger = factory.CreateLogger(); logger.WriteLog();//结果:数据库日志记录 Console.Read(); /*总结: * 1.如果需要更换日志记录器,则只需要修改客户端代码中具体工厂类的类名即可. * 2.如果需要添加并使用新的日志记录器,只需要对应增加一个新的具体工厂类, * --再在客户端代码中修改具体工厂类类名,原有类库代码无须做任何修改. * 可配置:可通过引入配置文件并使用反射机制,可实现在不修改客户端代码的基础上更换具体工厂类 */ } } /// <summary> /// 日志记录接口,充当抽象产品角色 /// </summary> internal interface Logger { void WriteLog(); } /// <summary> /// 数据库日志记录器,充当具体产品角色 /// </summary> class DatabaseLogger:Logger { public void WriteLog() { Console.WriteLine("数据库记录日志"); } } /// <summary> /// 文件日志记录器,充当具体产品角色 /// </summary> class FileLogger : Logger { public void WriteLog() { Console.WriteLine("文件日志记录"); } } /// <summary> /// 日志记录器工厂接口 /// </summary> internal interface LoggerFactory { Logger CreateLogger();//抽象工厂方法 } /// <summary> /// 数据库日志记录器工厂类,充当具体工厂角色 /// </summary> class DatabaseLoggerFactory : LoggerFactory { public Logger CreateLogger() { //连接数据库 //创建数据库日志记录对象 Logger logger=new DatabaseLogger(); //初始化数据库日志记录器 return logger; } } /// <summary> /// 文件日志记录器工厂类,充当具体工厂角色 /// </summary> class FileLoggerFactory : LoggerFactory { public Logger CreateLogger() { //创建日志记录器对象 Logger logger=new FileLogger(); //创建文件 //... return logger; } } }
相关文章推荐
- 乐在其中设计模式(C#) - 工厂方法模式(Factory Method Pattern)
- C#设计模式之工厂模式(Factory)--02 工厂方法模式(Factory Method)
- C#设计模式——工厂方法模式
- C#设计模式——工厂方法模式(Factory Method Pattern)
- 【C# 设计模式-工厂方法模式】
- C#设计模式之工厂方法模式(游泳成绩排名例子)
- C#设计模式(3)——工厂方法模式
- C#设计模式01-工厂方法模式(附源码)
- C#设计模式(3)——工厂方法模式
- C#设计模式之工厂方法模式(Factory Method Pattern)
- [导入]C#面向对象设计模式纵横谈(5):Factory Method 工厂方法模式(创建型模式).zip(10.09 MB)
- 乐在其中设计模式(C#) - 工厂方法模式(Factory Method Pattern)
- C#设计模式——工厂方法模式(Factory Method Pattern)
- 设计模式C#描述——工厂方法模式 mutou23 [原作]
- 乐在其中设计模式(C#) - 工厂方法模式(Factory Method Pattern)
- 《模式——工程化实现及扩展》(设计模式C# 版)《工厂方法模式 Factory Method》——“自我检验" 参考答案
- c# 设计模式:工厂方法模式
- C#设计模式(3)——工厂方法模式 推荐
- C# 设计模式系列教程-工厂方法模式
- 使用设计模式中的工厂方法模式进行C#编程的示例讲解