diff --git a/README.md b/README.md
index fb4127ae0ae3d58f1f625b58c6e3899c9049f04d..9eee6bc5bb8182c4c4b63a3c37036b0dabcb7ba3 100644
--- a/README.md
+++ b/README.md
@@ -182,7 +182,8 @@
## 6.3.2 策略模式结构图

-
+## 6.3.3
+
# 特技
diff --git a/byv-strategy-patttern-14/pom.xml b/byv-strategy-patttern-14/pom.xml
index 6a059aec94d1841b1c6e2a5e6c4302909dbce11d..8852549b82a7a736a329becfcfaeca32d1b9a7ad 100644
--- a/byv-strategy-patttern-14/pom.xml
+++ b/byv-strategy-patttern-14/pom.xml
@@ -21,7 +21,16 @@
1.18.28
compile
-
+
+ org.dom4j
+ dom4j
+ 2.1.3
+
+
+ jaxen
+ jaxen
+ 1.1.6
+
\ No newline at end of file
diff --git a/byv-strategy-patttern-14/src/main/java/com/boyunv/strategy/example02/ReceiptBuilder.java b/byv-strategy-patttern-14/src/main/java/com/boyunv/strategy/example02/ReceiptBuilder.java
index 17003ab49177abe5005ce6c44798874520355709..0dff7ac773328e69c27c5a51552a43c6e8f39369 100644
--- a/byv-strategy-patttern-14/src/main/java/com/boyunv/strategy/example02/ReceiptBuilder.java
+++ b/byv-strategy-patttern-14/src/main/java/com/boyunv/strategy/example02/ReceiptBuilder.java
@@ -15,8 +15,8 @@ public class ReceiptBuilder {
//模拟回执的信息
List list=new ArrayList<>();
list.add(new Receipt("MT1101回执信息","MT1101"));
- list.add(new Receipt("MT1102回执信息","MT1102"));
- list.add(new Receipt("MT1103回执信息","MT1103"));
+ // list.add(new Receipt("MT1102回执信息","MT1102"));
+ // list.add(new Receipt("MT1103回执信息","MT1103"));
//list.add(new Receipt("MT1104回执信息","MT1104"));
//
diff --git a/byv-strategy-patttern-14/src/main/java/com/boyunv/strategy/example03/ReceiptHandleStrategyFactory.java b/byv-strategy-patttern-14/src/main/java/com/boyunv/strategy/example03/ReceiptHandleStrategyFactory.java
index d916a52c613d8f46516f6fd68f3e0f999f2995cf..590f0e8944258918ace04f44a9e0b2ea11fa17d4 100644
--- a/byv-strategy-patttern-14/src/main/java/com/boyunv/strategy/example03/ReceiptHandleStrategyFactory.java
+++ b/byv-strategy-patttern-14/src/main/java/com/boyunv/strategy/example03/ReceiptHandleStrategyFactory.java
@@ -8,7 +8,12 @@ package com.boyunv.strategy.example03;
*/
import com.boyunv.strategy.example02.Receipt;
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.Node;
+import org.dom4j.io.SAXReader;
+import javax.xml.parsers.SAXParser;
import java.util.HashMap;
import java.util.Map;
@@ -21,9 +26,23 @@ public class ReceiptHandleStrategyFactory {
//初始化具体的策略,保存到map集合
public static void init(){
strategyMap= new HashMap<>();
- strategyMap.put("MT1101",new MT1101HandlerStrategy());
- strategyMap.put("MT1102",new MT1102HandlerStrategy());
- strategyMap.put("MT1103",new MT1103HandlerStrategy());
+// strategyMap.put("MT1101",new MT1101HandlerStrategy());
+// strategyMap.put("MT1102",new MT1102HandlerStrategy());
+// strategyMap.put("MT1103",new MT1103HandlerStrategy());
+ try {
+ SAXReader reader=new SAXReader();
+ String file="D:\\projs\\design-patterns\\byv-strategy-patttern-14\\src\\main\\resources\\config.xml";
+ Document read = reader.read(file);
+ Node node = read.selectSingleNode("/config/className");
+ String className = node.getText();
+ Class clazz= Class.forName(className);
+ ReceiptHandlerStrategy receiptHandlerStrategy = (ReceiptHandlerStrategy) clazz.newInstance();
+ strategyMap.put("MT1101",receiptHandlerStrategy);
+
+
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
}
//根据回执类型,获取对应的策略对象
diff --git a/byv-strategy-patttern-14/src/main/resources/config.xml b/byv-strategy-patttern-14/src/main/resources/config.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7cbe016568f295adf6621d9d76f83604173b20e5
--- /dev/null
+++ b/byv-strategy-patttern-14/src/main/resources/config.xml
@@ -0,0 +1,4 @@
+
+
+ com.boyunv.strategy.example03.MT1101HandlerStrategy
+
\ No newline at end of file
diff --git a/img/img_strategy_pattern_merits.png b/img/img_strategy_pattern_merits.png
new file mode 100644
index 0000000000000000000000000000000000000000..79f12fbaa9d1809746e6e4f5b3812b44160142ed
Binary files /dev/null and b/img/img_strategy_pattern_merits.png differ