Handler抽象类:
public abstract class AbstractLoggerHandler {
public static final int INFO = 1;
public static final int DEBUG = 2;
public static final int ERROR = 3;
protected int level;
protected AbstractLoggerHandler nextLoggerHandler;
public void setNextLoggerHandler(AbstractLoggerHandler nextLoggerHandler) {
this.nextLoggerHandler = nextLoggerHandler;
}
public void handleRequest(int level, String message) {
if (this.level <= level) {
write(message);
if (this.level < level) {
if (nextLoggerHandler != null) {
nextLoggerHandler.handleRequest(level, message);
}
}
} else {
elseWrite();
}
}
abstract protected void write(String message);
abstract protected void elseWrite();
}
Handler具体类A:
class ConsoleLoggerHandler extends AbstractLoggerHandler {
public ConsoleLoggerHandler(int level) {
this.level = level;
}
测试类:
public class LoggerHandlerTest {
public static void main(String[] args) {
AbstractLoggerHandler consoleLoggerHandler = new ConsoleLoggerHandler(AbstractLoggerHandler.INFO);
AbstractLoggerHandler fileLoggerHandler = new FileLoggerHandler(AbstractLoggerHandler.DEBUG);
AbstractLoggerHandler errorLoggerHandler = new ErrorLoggerHandler(AbstractLoggerHandler.ERROR);