diff --git a/chain/README.md b/chain-of-responsibility/README.md
similarity index 86%
rename from chain/README.md
rename to chain-of-responsibility/README.md
index 28fefc847..6bda8177b 100644
--- a/chain/README.md
+++ b/chain-of-responsibility/README.md
@@ -1,8 +1,8 @@
---
layout: pattern
title: Chain of responsibility
-folder: chain
-permalink: /patterns/chain/
+folder: chain-of-responsibility
+permalink: /patterns/chain-of-responsibility/
categories: Behavioral
language: en
tags:
@@ -10,16 +10,17 @@ tags:
---
## Intent
+
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.
## Explanation
-Real world example
+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.
+> an officer, and then a soldier. The commander, officer, and soldier form a chain of responsibility.
In plain words
@@ -35,7 +36,7 @@ Wikipedia says
**Programmatic Example**
-Translating our example with the orcs from above. First we have the `Request` class:
+Translating our example with the orcs from above. First, we have the `Request` class:
```java
public class Request {
@@ -66,7 +67,7 @@ public enum RequestType {
}
```
-Then the request handler hierarchy
+Next, we show the request handler hierarchy.
```java
@Slf4j
@@ -116,7 +117,7 @@ public class OrcCommander extends RequestHandler {
```
-Then we have the Orc King who gives the orders and forms the chain
+Th Orc King gives the orders and forms the chain.
```java
public class OrcKing {
@@ -136,18 +137,26 @@ public class OrcKing {
}
```
-Then it is used as follows
+The chain of responsibility in action.
```java
var 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"
+king.makeRequest(new Request(RequestType.DEFEND_CASTLE, "defend castle"));
+king.makeRequest(new Request(RequestType.TORTURE_PRISONER, "torture prisoner"));
+king.makeRequest(new Request(RequestType.COLLECT_TAX, "collect tax"));
+```
+
+The console output.
+
+```
+Orc commander handling request "defend castle"
+Orc officer handling request "torture prisoner"
+Orc soldier handling request "collect tax"
```
## Class diagram
-
+
## Applicability
@@ -157,7 +166,7 @@ Use Chain of Responsibility when
* You want to issue a request to one of several objects without specifying the receiver explicitly.
* The set of objects that can handle a request should be specified dynamically.
-## Real world examples
+## Real-world examples
* [java.util.logging.Logger#log()](http://docs.oracle.com/javase/8/docs/api/java/util/logging/Logger.html#log%28java.util.logging.Level,%20java.lang.String%29)
* [Apache Commons Chain](https://commons.apache.org/proper/commons-chain/index.html)
diff --git a/chain/etc/chain.urm.png b/chain-of-responsibility/etc/chain-of-responsibility.urm.png
similarity index 100%
rename from chain/etc/chain.urm.png
rename to chain-of-responsibility/etc/chain-of-responsibility.urm.png
diff --git a/chain/etc/chain.urm.puml b/chain-of-responsibility/etc/chain-of-responsibility.urm.puml
similarity index 100%
rename from chain/etc/chain.urm.puml
rename to chain-of-responsibility/etc/chain-of-responsibility.urm.puml
diff --git a/chain/pom.xml b/chain-of-responsibility/pom.xml
similarity index 97%
rename from chain/pom.xml
rename to chain-of-responsibility/pom.xml
index 211b38ca4..8482fad42 100644
--- a/chain/pom.xml
+++ b/chain-of-responsibility/pom.xml
@@ -31,7 +31,7 @@
java-design-patterns
1.25.0-SNAPSHOT
- chain
+ chain-of-responsibility
org.junit.jupiter
diff --git a/chain/src/main/java/com/iluwatar/chain/App.java b/chain-of-responsibility/src/main/java/com/iluwatar/chain/App.java
similarity index 100%
rename from chain/src/main/java/com/iluwatar/chain/App.java
rename to chain-of-responsibility/src/main/java/com/iluwatar/chain/App.java
diff --git a/chain/src/main/java/com/iluwatar/chain/OrcCommander.java b/chain-of-responsibility/src/main/java/com/iluwatar/chain/OrcCommander.java
similarity index 100%
rename from chain/src/main/java/com/iluwatar/chain/OrcCommander.java
rename to chain-of-responsibility/src/main/java/com/iluwatar/chain/OrcCommander.java
diff --git a/chain/src/main/java/com/iluwatar/chain/OrcKing.java b/chain-of-responsibility/src/main/java/com/iluwatar/chain/OrcKing.java
similarity index 100%
rename from chain/src/main/java/com/iluwatar/chain/OrcKing.java
rename to chain-of-responsibility/src/main/java/com/iluwatar/chain/OrcKing.java
diff --git a/chain/src/main/java/com/iluwatar/chain/OrcOfficer.java b/chain-of-responsibility/src/main/java/com/iluwatar/chain/OrcOfficer.java
similarity index 100%
rename from chain/src/main/java/com/iluwatar/chain/OrcOfficer.java
rename to chain-of-responsibility/src/main/java/com/iluwatar/chain/OrcOfficer.java
diff --git a/chain/src/main/java/com/iluwatar/chain/OrcSoldier.java b/chain-of-responsibility/src/main/java/com/iluwatar/chain/OrcSoldier.java
similarity index 100%
rename from chain/src/main/java/com/iluwatar/chain/OrcSoldier.java
rename to chain-of-responsibility/src/main/java/com/iluwatar/chain/OrcSoldier.java
diff --git a/chain/src/main/java/com/iluwatar/chain/Request.java b/chain-of-responsibility/src/main/java/com/iluwatar/chain/Request.java
similarity index 100%
rename from chain/src/main/java/com/iluwatar/chain/Request.java
rename to chain-of-responsibility/src/main/java/com/iluwatar/chain/Request.java
diff --git a/chain/src/main/java/com/iluwatar/chain/RequestHandler.java b/chain-of-responsibility/src/main/java/com/iluwatar/chain/RequestHandler.java
similarity index 100%
rename from chain/src/main/java/com/iluwatar/chain/RequestHandler.java
rename to chain-of-responsibility/src/main/java/com/iluwatar/chain/RequestHandler.java
diff --git a/chain/src/main/java/com/iluwatar/chain/RequestType.java b/chain-of-responsibility/src/main/java/com/iluwatar/chain/RequestType.java
similarity index 100%
rename from chain/src/main/java/com/iluwatar/chain/RequestType.java
rename to chain-of-responsibility/src/main/java/com/iluwatar/chain/RequestType.java
diff --git a/chain/src/test/java/com/iluwatar/chain/AppTest.java b/chain-of-responsibility/src/test/java/com/iluwatar/chain/AppTest.java
similarity index 100%
rename from chain/src/test/java/com/iluwatar/chain/AppTest.java
rename to chain-of-responsibility/src/test/java/com/iluwatar/chain/AppTest.java
diff --git a/chain/src/test/java/com/iluwatar/chain/OrcKingTest.java b/chain-of-responsibility/src/test/java/com/iluwatar/chain/OrcKingTest.java
similarity index 100%
rename from chain/src/test/java/com/iluwatar/chain/OrcKingTest.java
rename to chain-of-responsibility/src/test/java/com/iluwatar/chain/OrcKingTest.java
diff --git a/pom.xml b/pom.xml
index df2f45317..31cf03b4d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -105,7 +105,7 @@
facade
flyweight
proxy
- chain
+ chain-of-responsibility
command
interpreter
iterator