创建型模式之工厂方法模式(日志记录器)

题目:某系统日志记录器要求支持多种日志记录方式,如文件日志记录(FileLog)、数据库日志记录(DatabaseLog)等,且用户可以根据要求动态选择日志记录方式,现使用工厂模式设计该系统。

类图

创建型模式之工厂方法模式(日志记录器)_第1张图片

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();
}
运行效果图

创建型模式之工厂方法模式(日志记录器)_第2张图片

你可能感兴趣的:(设计模式)