创建型模式之工厂方法模式(日志记录器)
2015-11-04 15:38
357 查看
题目:某系统日志记录器要求支持多种日志记录方式,如文件日志记录(FileLog)、数据库日志记录(DatabaseLog)等,且用户可以根据要求动态选择日志记录方式,现使用工厂模式设计该系统。
类图
类图
package cn.factory2; public class Client { public static void main(String[] args) { try { Log log; //LogFactory factory1; LogFactory factory2; //factory1 = new DatabaseLogFactory(); factory2 = new FileLogFactory(); //factory = (LogFactory)XMLUtil.getBean(); log = factory2.createLog(); log.writeLog(); } catch(Exception e) { System.out.println(e.getMessage()); } } }
package cn.factory2; public class DatabaseFile implements Log{ public void writeLog() { System.out.println("数据库日志写入中。。。"); } }
package cn.factory2; public class DatabaseLogFactory implements LogFactory{ public Log createLog() { System.out.println("数据库日志工厂生产数据库日志。"); return new DatabaseFile(); } }
package cn.factory2; public class FileLog implements Log{ public void writeLog() { System.out.println("文件日志写入中。。。"); } }
package cn.factory2; public class FileLogFactory implements LogFactory{ public Log createLog() { System.out.println("文件日志工厂生产文件日志。"); return new FileLog(); } }
package cn.factory2; public interface Log { public void writeLog(); }
package cn.factory2; public interface LogFactory { public Log createLog(); }运行效果图
相关文章推荐
- 客户常见错误及解决方案
- HDU1005
- jsp 缓存设置
- 人生当中第一次转正
- Centos6.5 下安装PostgreSQL9.4数据库
- linux git 安装
- 151104的测试总结
- 博客开张啦~
- Wildcard Matching - LeetCode
- UVA-11383 Golden Tiger Claw (KM算法)
- git曲线
- Sort Colors
- DJI SDK开发——第一个程序
- OutLook设置签名,设置开机启动,最小化到托盘
- 【Android开发】之Fragment重要函数讲解
- 基于CDH5集群配置snappy压缩
- servlet容器中webservice的实现
- php利用header导出.doc或者.xls文件
- pixhawk飞控架构
- 理解JavaScript的临时包装对象