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

通过面向接口编程实现日志输出

2009-11-01 11:34 501 查看
在这个示例中,具体负责审核的业务逻辑代码和日志信息分离了,并且只要实现了接口TimeBookInterface的类,都可以通过代理类TimeBookProxy实现日志信息的输出,而不用在每个类里都写输出日志的代码了,从而实现日志信息的代码重用.

示例代码如下:

//TimeBookInterface.java

package com.gc.impl;

//通过面向接口编程实现日志输出
public interface TimeBookInterface {
public void doAuditing(String name);
}

//TimeBook.java

package com.gc.action;

import com.gc.impl.TimeBookInterface;

public class TimeBook implements TimeBookInterface {
//审核数据的相关程序
public void doAuditing(String name){
System.out.println("审核程序");
}
}

//TimeBookProxy.java

package com.gc.action;

import org.apache.log4j.Level;
import org.apache.log4j.Logger;

import com.gc.impl.TimeBookInterface;

public class TimeBookProxy {
private Logger logger = Logger.getLogger(this.getClass().getName());
private TimeBookInterface timeBookInterface;
//在该类中针对前面的接口TimeBookInterface编程,而不是针对具体的类
public TimeBookProxy(TimeBookInterface timeBookInterface){
this.timeBookInterface = timeBookInterface;
}
//实际业务处理
public void doAuditing(String name){
logger.log(Level.INFO,"开始审核数据 "+name);
timeBookInterface.doAuditing(name);
logger.log(Level.INFO,"审核数据结束 "+name);
}
}

//TestHelloWorld.java

package com.gc.test;

import com.gc.action.TimeBook;
import com.gc.action.TimeBookProxy;

public class TestHelloWorld {
public static void main(String[] args){
TimeBookProxy timeBookProxy = new TimeBookProxy(new TimeBook());
timeBookProxy.doAuditing("张三");
}
}

运行结果:

[INFO ] 2009-11-01 11:42:37 com.gc.action.TimeBookProxy - 开始审核数据 张三
审核程序
[INFO ] 2009-11-01 11:42:37 com.gc.action.TimeBookProxy - 审核数据结束 张三
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐