design patterns : chain of responsibillity
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
package chain_of_responsibility.after;
|
||||
|
||||
public class AuthRequestHandler extends RequestHandler {
|
||||
|
||||
public AuthRequestHandler(RequestHandler nextHandler) {
|
||||
super(nextHandler);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(Request request) {
|
||||
System.out.println("인증이 되었나?");
|
||||
super.handle(request);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package chain_of_responsibility.after;
|
||||
|
||||
public class Client {
|
||||
|
||||
private RequestHandler requestHandler;
|
||||
|
||||
public Client(RequestHandler requestHandler) {
|
||||
this.requestHandler = requestHandler;
|
||||
}
|
||||
|
||||
public void doWork() {
|
||||
Request request = new Request("이번 놀이는 뽑기입니다.");
|
||||
requestHandler.handle(request);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
RequestHandler chain = new AuthRequestHandler(new LoggingRequestHandler(new PrintRequestHandler(null)));
|
||||
|
||||
Client client = new Client(chain);
|
||||
client.doWork();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package chain_of_responsibility.after;
|
||||
|
||||
public class LoggingRequestHandler extends RequestHandler {
|
||||
|
||||
public LoggingRequestHandler(RequestHandler nextHandler) {
|
||||
super(nextHandler);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(Request request) {
|
||||
System.out.println("로깅");
|
||||
super.handle(request);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package chain_of_responsibility.after;
|
||||
|
||||
public class PrintRequestHandler extends RequestHandler {
|
||||
|
||||
public PrintRequestHandler(RequestHandler nextHandler) {
|
||||
super(nextHandler);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(Request request) {
|
||||
System.out.println(request.getBody());
|
||||
super.handle(request);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package chain_of_responsibility.after;
|
||||
|
||||
public class Request {
|
||||
|
||||
private String body;
|
||||
|
||||
public Request(String body) {
|
||||
this.body = body;
|
||||
}
|
||||
|
||||
public String getBody() {
|
||||
return body;
|
||||
}
|
||||
|
||||
public void setBody(String body) {
|
||||
this.body = body;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package chain_of_responsibility.after;
|
||||
|
||||
public abstract class RequestHandler {
|
||||
|
||||
private RequestHandler nextHandler;
|
||||
|
||||
public RequestHandler(RequestHandler nextHandler) {
|
||||
this.nextHandler = nextHandler;
|
||||
}
|
||||
|
||||
public void handle(Request request) {
|
||||
if (nextHandler != null) {
|
||||
nextHandler.handle(request);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package chain_of_responsibility.before;
|
||||
|
||||
public class AuthRequestHandler extends RequestHandler {
|
||||
|
||||
@Override
|
||||
public void handler(Request request) {
|
||||
System.out.println("인증이 되었나?");
|
||||
System.out.println("이 핸들러를 사용할 수 있는 유저인가?");
|
||||
super.handler(request);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package chain_of_responsibility.before;
|
||||
|
||||
public class Client {
|
||||
|
||||
public static void main(String[] args) {
|
||||
Request request = new Request("무궁화 꽃이 피었습니다.");
|
||||
RequestHandler requestHandler = new AuthRequestHandler();
|
||||
requestHandler.handler(request);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package chain_of_responsibility.before;
|
||||
|
||||
public class LoggingRequestHandler extends RequestHandler {
|
||||
|
||||
@Override
|
||||
public void handler(Request request) {
|
||||
System.out.println("로깅");
|
||||
super.handler(request);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package chain_of_responsibility.before;
|
||||
|
||||
public class Request {
|
||||
|
||||
private String body;
|
||||
|
||||
public Request(String body) {
|
||||
this.body = body;
|
||||
}
|
||||
|
||||
public String getBody() {
|
||||
return body;
|
||||
}
|
||||
|
||||
public void setBody(String body) {
|
||||
this.body = body;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package chain_of_responsibility.before;
|
||||
|
||||
public class RequestHandler {
|
||||
|
||||
public void handler(Request request) {
|
||||
System.out.println(request.getBody());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user