您的位置:首页 > 编程语言 > Java开发

Java软件体系设计模式----工厂模式

2011-10-14 20:42 453 查看
有时,应用对象可能只知道他需要访问类层次结构中得某个类,但并不确定要从父类的子类集中选着哪个类。

如何选着相应的类可能取决与某些因素,例如:

a,所运行的应用状态

b,应用配置设置

c,需求或增强的扩展

实例:

类层次



代码:

package com.zhang;

public class LoggerTete {

public static void main(String[] args) {

LoggerFactory factory = new LoggerFactory();

Logger logger = factory.getLogger();

logger.log("A MESSAGE TO LOG!");

}

}

package com.zhang;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileWriter;

public class FileLogger implements Logger{

public void log(String msg) {

File file = new File("zhang.txt");

try {

FileWriter fw = new FileWriter(file);

fw.write(msg);

fw.flush();

} catch (Exception e) {

e.printStackTrace();

}

}

}

package com.zhang;

public class ConsoleLogger implements Logger{

public void log(String msg) {

System.out.println(msg);

}

}

package com.zhang;

import java.io.IOException;

import java.util.Properties;

public class LoggerFactory {

public boolean isFileLoggingEnabled() {

Properties p = new Properties();

try {

p.load(ClassLoader.getSystemResourceAsStream("Logger.properties"));

String fileLoggingValue = p.getProperty("FileLogging");

if(fileLoggingValue.equalsIgnoreCase("ON")== true)

return true;

else

return false;

} catch (Exception e) {

return false;

}

}

public Logger getLogger(){

if(isFileLoggingEnabled()) {

return new FileLogger();

}

else

return new ConsoleLogger();

}

}

配置文件

FileLogging=ON

package com.zhang;

public class LoggerTete {

public static void main(String[] args) {

LoggerFactory factory = new LoggerFactory();

Logger logger = factory.getLogger();

logger.log("A MESSAGE TO LOG!");

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: