`
tianyalinfeng
  • 浏览: 450216 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Chain of responsibility

    博客分类:
  • Java
 
阅读更多

public class Handler {
    private Handler successor;

    public void setSuccessor(Handler successor) {
        this.successor = successor;
    }

    public Handler getSuccessor() {
        return successor;
    }

    public void handleRequest(char c) {
        if(successor != null)
            successor.handleRequest(c);
    }
}

 

 

public class NumberHandler extends Handler {
    public void handleRequest(char c) {
        if(Character.isDigit(c)) {
            System.out.println("Number has been handled");
        }
        else {
            getSuccessor().handleRequest(c);
        }
    }
}

 

public class CharacterHandler extends Handler {
    public void handleRequest(char c) {
        if(Character.isLetter(c)) {
            System.out.println("Character has been handled");
        }
        else {
            getSuccessor().handleRequest(c);
        }
    }
}

 

public class SymbolHandler extends Handler {
    public void handleRequest(char c) {
        System.out.println("Symbol has been handled");
    }
}

 

import java.io.*;

public class Application {
    public static void main(String[] args)
                                 throws IOException {
        Handler numberHandler = new NumberHandler();
        Handler characterHandler = new CharacterHandler();
        Handler symbolHandler = new SymbolHandler();

        numberHandler.setSuccessor(characterHandler);
        characterHandler.setSuccessor(symbolHandler);

        System.out.print("Press any key then return: ");
        char c = (char)System.in.read();
        numberHandler.handleRequest(c);
    }

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics