design patterns : chain of responsibillity

This commit is contained in:
haerong22
2021-12-12 19:04:48 +09:00
parent 67f3a09433
commit 69c62d780d
11 changed files with 155 additions and 0 deletions

View File

@@ -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);
}
}

View File

@@ -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();
}
}

View File

@@ -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);
}
}

View File

@@ -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);
}
}

View File

@@ -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;
}
}

View File

@@ -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);
}
}
}

View File

@@ -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);
}
}

View File

@@ -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);
}
}

View File

@@ -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);
}
}

View File

@@ -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;
}
}

View File

@@ -0,0 +1,8 @@
package chain_of_responsibility.before;
public class RequestHandler {
public void handler(Request request) {
System.out.println(request.getBody());
}
}