logo资料库

工厂方法设计模式.doc

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
软件设计模式 实验三 工厂方法设计模式 实验目的:加深对工厂方法设计模式及创建型设计模式原理的理解 实验环境:C#.Net 实验内容: 某系统日志记录器要求支持多种日志记录方式,如文件日志记录和到数据库日志记录 等,且用户在应用场景下可以根据要求动态选择日志记录方式,现使用工厂方法设计模式设 计该系统。 实验过程: 1、构建实现场景,画出 UML 类图 2、实现代码(C#) static void Main(string [] args) { Console .WriteLine("采用文件日志记录方式"); ILogFactory fileLogFactory = new FileLogFactory(); Log filelog = fileLogFactory .CreateLog();
软件设计模式 filelog .write(); Console .WriteLine("==============================") ; Console .WriteLine("采用数据库日志记录方式"); ILogFactory databaseLogFactory = new DatabaseLogFactory(); Log databaseLog = databaseLogFactory .CreateLog(); databaseLog .write(); } /// /// 日志抽象类 /// public abstract class Log { public abstract void write(); } /// /// 文件日志类
软件设计模式 /// public class FileLog :Log { public override void write() { Console .WriteLine("正在向文件日志中写入数 据......"); } } /// /// 数据库日志类 /// public class DatabaseLog :Log { public override void write() { Console .WriteLine("正在向数据库日志中写入数 据......"); } } ///
软件设计模式 /// 抽象日志工厂 /// interface ILogFactory { Log CreateLog(); } /// /// 文件日志型工厂 /// public class FileLogFactory :ILogFactory { public Log CreateLog() { return new FileLog(); } } /// /// 数据库日志型工厂 /// public class DatabaseLogFactory :ILogFactory {
软件设计模式 public Log CreateLog() { return new DatabaseLog(); } } 实验结果: 实验讨论(效果分析): 通过这次实验,加深了对创建型设计模式的理解,并对几种模式进行比较,发现各种模式的 特点:工厂方法模式中,核心的工厂类不是负责所有产品的创建,而是将具体的创建工作交 给子类,工厂模式中,子工厂与产品类往往具有平行的等级结构,他们之间一一对应。 选折某个设计模式有了比较深的理解,这次实验,同时也是上次实验课学习的进一步应用, 体现开闭原则(要求对软件的拓展开放)和里氏替换原则。
分享到:
收藏