From eb36033b833fe6bea0a9caf52842ece1cc743c62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Tue, 19 Sep 2017 23:20:40 +0300 Subject: [PATCH] #590 Add explanation for Chain of Responsibility --- chain/README.md | 126 ++++++++++++++++++++++++++++++++++++++- chain/etc/chain.png | Bin 31068 -> 0 bytes chain/etc/chain.ucls | 109 --------------------------------- chain/etc/chain.urm.puml | 61 ------------------- chain/etc/chain_1.png | Bin 61616 -> 0 bytes pom.xml | 2 + proxy/etc/proxy.png | Bin 22953 -> 0 bytes proxy/etc/proxy.ucls | 72 ---------------------- proxy/etc/proxy.urm.puml | 32 ---------- 9 files changed, 127 insertions(+), 275 deletions(-) delete mode 100644 chain/etc/chain.png delete mode 100644 chain/etc/chain.ucls delete mode 100644 chain/etc/chain.urm.puml delete mode 100644 chain/etc/chain_1.png delete mode 100644 proxy/etc/proxy.png delete mode 100644 proxy/etc/proxy.ucls delete mode 100644 proxy/etc/proxy.urm.puml diff --git a/chain/README.md b/chain/README.md index f5f6c9de9..1d7eb5b73 100644 --- a/chain/README.md +++ b/chain/README.md @@ -16,7 +16,131 @@ Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects and pass the request along the chain until an object handles it. -![alt text](./etc/chain_1.png "Chain of Responsibility") +## Explanation + +Real world example + +> The Orc King gives loud orders to his army. The closest one to react is the commander, then officer and then soldier. The commander, officer and soldier here form a chain of responsibility. + +In plain words + +> It helps building a chain of objects. Request enters from one end and keeps going from object to object till it finds the suitable handler. + +Wikipedia says + +> In object-oriented design, the chain-of-responsibility pattern is a design pattern consisting of a source of command objects and a series of processing objects. Each processing object contains logic that defines the types of command objects that it can handle; the rest are passed to the next processing object in the chain. + +**Programmatic Example** + +Translating our example with orcs from above. First we have the request class + +``` +public class Request { + + private final RequestType requestType; + private final String requestDescription; + private boolean handled; + + public Request(final RequestType requestType, final String requestDescription) { + this.requestType = Objects.requireNonNull(requestType); + this.requestDescription = Objects.requireNonNull(requestDescription); + } + + public String getRequestDescription() { return requestDescription; } + + public RequestType getRequestType() { return requestType; } + + public void markHandled() { this.handled = true; } + + public boolean isHandled() { return this.handled; } + + @Override + public String toString() { return getRequestDescription(); } +} + +public enum RequestType { + DEFEND_CASTLE, TORTURE_PRISONER, COLLECT_TAX +} +``` + +Then the request handler hierarchy + +``` +public abstract class RequestHandler { + private static final Logger LOGGER = LoggerFactory.getLogger(RequestHandler.class); + private RequestHandler next; + + public RequestHandler(RequestHandler next) { + this.next = next; + } + + public void handleRequest(Request req) { + if (next != null) { + next.handleRequest(req); + } + } + + protected void printHandling(Request req) { + LOGGER.info("{} handling request \"{}\"", this, req); + } + + @Override + public abstract String toString(); +} + +public class OrcCommander extends RequestHandler { + public OrcCommander(RequestHandler handler) { + super(handler); + } + + @Override + public void handleRequest(Request req) { + if (req.getRequestType().equals(RequestType.DEFEND_CASTLE)) { + printHandling(req); + req.markHandled(); + } else { + super.handleRequest(req); + } + } + + @Override + public String toString() { + return "Orc commander"; + } +} + +// OrcOfficer and OrcSoldier are defined similarly as OrcCommander + +``` + +Then we have the Orc King who gives the orders and forms the chain + +``` +public class OrcKing { + RequestHandler chain; + + public OrcKing() { + buildChain(); + } + + private void buildChain() { + chain = new OrcCommander(new OrcOfficer(new OrcSoldier(null))); + } + + public void makeRequest(Request req) { + chain.handleRequest(req); + } +} +``` + +Then it is used as follows + +``` +OrcKing king = new OrcKing(); +king.makeRequest(new Request(RequestType.DEFEND_CASTLE, "defend castle")); // Orc commander handling request "defend castle" +king.makeRequest(new Request(RequestType.TORTURE_PRISONER, "torture prisoner")); // Orc officer handling request "torture prisoner" +king.makeRequest(new Request(RequestType.COLLECT_TAX, "collect tax")); // Orc soldier handling request "collect tax" +``` ## Applicability Use Chain of Responsibility when diff --git a/chain/etc/chain.png b/chain/etc/chain.png deleted file mode 100644 index 7316ff3d041770ea04e66cc4c2d14f796fb66941..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31068 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/chain/etc/chain.urm.puml b/chain/etc/chain.urm.puml deleted file mode 100644 index 4a2f6a188..000000000 --- a/chain/etc/chain.urm.puml +++ /dev/null @@ -1,61 +0,0 @@ -@startuml -package com.iluwatar.chain { - class App { - + App() - + main(args : String[]) {static} - } - class OrcCommander { - + OrcCommander(handler : RequestHandler) - + handleRequest(req : Request) - + toString() : String - } - class OrcKing { - ~ chain : RequestHandler - + OrcKing() - - buildChain() - + makeRequest(req : Request) - } - class OrcOfficer { - + OrcOfficer(handler : RequestHandler) - + handleRequest(req : Request) - + toString() : String - } - class OrcSoldier { - + OrcSoldier(handler : RequestHandler) - + handleRequest(req : Request) - + toString() : String - } - class Request { - - handled : boolean - - requestDescription : String - - requestType : RequestType - + Request(requestType : RequestType, requestDescription : String) - + getRequestDescription() : String - + getRequestType() : RequestType - + isHandled() : boolean - + markHandled() - + toString() : String - } - abstract class RequestHandler { - - LOGGER : Logger {static} - - next : RequestHandler - + RequestHandler(next : RequestHandler) - + handleRequest(req : Request) - # printHandling(req : Request) - + toString() : String {abstract} - } - enum RequestType { - + COLLECT_TAX {static} - + DEFEND_CASTLE {static} - + TORTURE_PRISONER {static} - + valueOf(name : String) : RequestType {static} - + values() : RequestType[] {static} - } -} -RequestHandler --> "-next" RequestHandler -Request --> "-requestType" RequestType -OrcKing --> "-chain" RequestHandler -OrcCommander --|> RequestHandler -OrcOfficer --|> RequestHandler -OrcSoldier --|> RequestHandler -@enduml \ No newline at end of file diff --git a/chain/etc/chain_1.png b/chain/etc/chain_1.png deleted file mode 100644 index fe9e3d6edcbce86f69ba5f60db935b249a54efca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61616 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 facade flyweight + proxy + chain diff --git a/proxy/etc/proxy.png b/proxy/etc/proxy.png deleted file mode 100644 index 300e58dd331166ed17916edc2719e137c54154f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22953 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/proxy/etc/proxy.urm.puml b/proxy/etc/proxy.urm.puml deleted file mode 100644 index ffe0fa446..000000000 --- a/proxy/etc/proxy.urm.puml +++ /dev/null @@ -1,32 +0,0 @@ -@startuml -package com.iluwatar.proxy { - class App { - + App() - + main(args : String[]) {static} - } - class IvoryTower { - - LOGGER : Logger {static} - + IvoryTower() - + enter(wizard : Wizard) - } - class Wizard { - - name : String - + Wizard(name : String) - + toString() : String - } - interface WizardTower { - + enter(Wizard) {abstract} - } - class WizardTowerProxy { - - LOGGER : Logger {static} - - NUM_WIZARDS_ALLOWED : int {static} - - numWizards : int - - tower : WizardTower - + WizardTowerProxy(tower : WizardTower) - + enter(wizard : Wizard) - } -} -WizardTowerProxy --> "-tower" WizardTower -IvoryTower ..|> WizardTower -WizardTowerProxy ..|> WizardTower -@enduml \ No newline at end of file