From 6b32d89cf5a99b6e01ff330a84b3146454ffa5f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E5=BA=9C=E5=BC=BA?= <8569561+fuqiangma@user.noreply.gitee.com> Date: Sat, 18 Feb 2023 10:05:29 +0800 Subject: [PATCH] map --- .../celuejj/celue/ConcreteStrategyA.java | 15 ++++ .../celuejj/celue/ConcreteStrategyB.java | 15 ++++ .../celuejj/celue/ConcreteStrategyC.java | 16 ++++ .../com/woniu/celuejj/celue/Strategy.java | 14 ++++ .../woniu/celuejj/celue/StrategyRunner.java | 5 ++ .../celuejj/celue/StrategyRunnerImpl.java | 23 ++++++ .../woniu/celuejj/celue/StrategySelector.java | 26 ++++++ .../java/com/woniu/celuejj/celue/TeT.java | 19 +++++ .../woniu/celuejj/factory/DefaultHashMap.java | 19 +++++ .../java/com/woniu/celuejj/factory/Test.java | 74 ++++++++++++++++++ .../java/com/woniu/celuejj/factory/User.java | 11 +++ .../celuejj/celue/ConcreteStrategyA.class | Bin 0 -> 841 bytes .../celuejj/celue/ConcreteStrategyB.class | Bin 0 -> 841 bytes .../celuejj/celue/ConcreteStrategyC.class | Bin 0 -> 841 bytes .../com/woniu/celuejj/celue/Strategy.class | Bin 0 -> 189 bytes .../woniu/celuejj/celue/StrategyRunner.class | Bin 0 -> 175 bytes .../celuejj/celue/StrategyRunnerImpl.class | Bin 0 -> 2444 bytes .../celuejj/celue/StrategySelector.class | Bin 0 -> 1626 bytes .../classes/com/woniu/celuejj/celue/TeT.class | Bin 0 -> 400 bytes .../com/woniu/celuejj/factory/Test.class | Bin 0 -> 2824 bytes .../com/woniu/celuejj/factory/User.class | Bin 0 -> 1955 bytes usemap/.idea/.gitignore | 8 ++ usemap/.idea/compiler.xml | 14 ++++ usemap/.idea/jarRepositories.xml | 20 +++++ usemap/.idea/misc.xml | 14 ++++ usemap/celuemoshijingjian.iml | 2 + usemap/pom.xml | 21 +++++ .../celuejj/celue/ConcreteStrategyA.java | 15 ++++ .../celuejj/celue/ConcreteStrategyB.java | 15 ++++ .../celuejj/celue/ConcreteStrategyC.java | 16 ++++ .../com/woniu/celuejj/celue/Strategy.java | 14 ++++ .../woniu/celuejj/celue/StrategyRunner.java | 5 ++ .../celuejj/celue/StrategyRunnerImpl.java | 23 ++++++ .../woniu/celuejj/celue/StrategySelector.java | 26 ++++++ .../java/com/woniu/celuejj/celue/TeT.java | 19 +++++ .../woniu/celuejj/factory/DefaultHashMap.java | 19 +++++ .../java/com/woniu/celuejj/factory/Test.java | 74 ++++++++++++++++++ .../java/com/woniu/celuejj/factory/User.java | 11 +++ .../celuejj/celue/ConcreteStrategyA.class | Bin 0 -> 841 bytes .../celuejj/celue/ConcreteStrategyB.class | Bin 0 -> 841 bytes .../celuejj/celue/ConcreteStrategyC.class | Bin 0 -> 841 bytes .../com/woniu/celuejj/celue/Strategy.class | Bin 0 -> 189 bytes .../woniu/celuejj/celue/StrategyRunner.class | Bin 0 -> 175 bytes .../celuejj/celue/StrategyRunnerImpl.class | Bin 0 -> 2444 bytes .../celuejj/celue/StrategySelector.class | Bin 0 -> 1626 bytes .../classes/com/woniu/celuejj/celue/TeT.class | Bin 0 -> 400 bytes .../com/woniu/celuejj/factory/Test.class | Bin 0 -> 2824 bytes .../com/woniu/celuejj/factory/User.class | Bin 0 -> 1955 bytes 48 files changed, 553 insertions(+) create mode 100644 celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyA.java create mode 100644 celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyB.java create mode 100644 celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyC.java create mode 100644 celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/Strategy.java create mode 100644 celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/StrategyRunner.java create mode 100644 celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/StrategyRunnerImpl.java create mode 100644 celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/StrategySelector.java create mode 100644 celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/TeT.java create mode 100644 celuemoshijingjian/src/main/java/com/woniu/celuejj/factory/DefaultHashMap.java create mode 100644 celuemoshijingjian/src/main/java/com/woniu/celuejj/factory/Test.java create mode 100644 celuemoshijingjian/src/main/java/com/woniu/celuejj/factory/User.java create mode 100644 celuemoshijingjian/target/classes/com/woniu/celuejj/celue/ConcreteStrategyA.class create mode 100644 celuemoshijingjian/target/classes/com/woniu/celuejj/celue/ConcreteStrategyB.class create mode 100644 celuemoshijingjian/target/classes/com/woniu/celuejj/celue/ConcreteStrategyC.class create mode 100644 celuemoshijingjian/target/classes/com/woniu/celuejj/celue/Strategy.class create mode 100644 celuemoshijingjian/target/classes/com/woniu/celuejj/celue/StrategyRunner.class create mode 100644 celuemoshijingjian/target/classes/com/woniu/celuejj/celue/StrategyRunnerImpl.class create mode 100644 celuemoshijingjian/target/classes/com/woniu/celuejj/celue/StrategySelector.class create mode 100644 celuemoshijingjian/target/classes/com/woniu/celuejj/celue/TeT.class create mode 100644 celuemoshijingjian/target/classes/com/woniu/celuejj/factory/Test.class create mode 100644 celuemoshijingjian/target/classes/com/woniu/celuejj/factory/User.class create mode 100644 usemap/.idea/.gitignore create mode 100644 usemap/.idea/compiler.xml create mode 100644 usemap/.idea/jarRepositories.xml create mode 100644 usemap/.idea/misc.xml create mode 100644 usemap/celuemoshijingjian.iml create mode 100644 usemap/pom.xml create mode 100644 usemap/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyA.java create mode 100644 usemap/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyB.java create mode 100644 usemap/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyC.java create mode 100644 usemap/src/main/java/com/woniu/celuejj/celue/Strategy.java create mode 100644 usemap/src/main/java/com/woniu/celuejj/celue/StrategyRunner.java create mode 100644 usemap/src/main/java/com/woniu/celuejj/celue/StrategyRunnerImpl.java create mode 100644 usemap/src/main/java/com/woniu/celuejj/celue/StrategySelector.java create mode 100644 usemap/src/main/java/com/woniu/celuejj/celue/TeT.java create mode 100644 usemap/src/main/java/com/woniu/celuejj/factory/DefaultHashMap.java create mode 100644 usemap/src/main/java/com/woniu/celuejj/factory/Test.java create mode 100644 usemap/src/main/java/com/woniu/celuejj/factory/User.java create mode 100644 usemap/target/classes/com/woniu/celuejj/celue/ConcreteStrategyA.class create mode 100644 usemap/target/classes/com/woniu/celuejj/celue/ConcreteStrategyB.class create mode 100644 usemap/target/classes/com/woniu/celuejj/celue/ConcreteStrategyC.class create mode 100644 usemap/target/classes/com/woniu/celuejj/celue/Strategy.class create mode 100644 usemap/target/classes/com/woniu/celuejj/celue/StrategyRunner.class create mode 100644 usemap/target/classes/com/woniu/celuejj/celue/StrategyRunnerImpl.class create mode 100644 usemap/target/classes/com/woniu/celuejj/celue/StrategySelector.class create mode 100644 usemap/target/classes/com/woniu/celuejj/celue/TeT.class create mode 100644 usemap/target/classes/com/woniu/celuejj/factory/Test.class create mode 100644 usemap/target/classes/com/woniu/celuejj/factory/User.class diff --git a/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyA.java b/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyA.java new file mode 100644 index 0000000..ed9f82e --- /dev/null +++ b/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyA.java @@ -0,0 +1,15 @@ +package com.woniu.celuejj.celue; + +public class ConcreteStrategyA implements Strategy { + + @Override + public String strategy() { + return StrategySelector.strategyA.getStrategy(); + } + + @Override + public void algorithm() { + System.out.println("process with strategyA..."); + } +} + diff --git a/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyB.java b/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyB.java new file mode 100644 index 0000000..1f27da9 --- /dev/null +++ b/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyB.java @@ -0,0 +1,15 @@ +package com.woniu.celuejj.celue; + +public class ConcreteStrategyB implements Strategy { + + @Override + public String strategy() { + return StrategySelector.strategyB.getStrategy(); + } + + @Override + public void algorithm() { + System.out.println("process with strategyB..."); + } +} + diff --git a/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyC.java b/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyC.java new file mode 100644 index 0000000..0cbad5b --- /dev/null +++ b/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyC.java @@ -0,0 +1,16 @@ +package com.woniu.celuejj.celue; + + +public class ConcreteStrategyC implements Strategy { + + @Override + public String strategy() { + return StrategySelector.strategyC.getStrategy(); + } + + @Override + public void algorithm() { + System.out.println("process with strategyC..."); + } +} + diff --git a/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/Strategy.java b/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/Strategy.java new file mode 100644 index 0000000..b6ddf75 --- /dev/null +++ b/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/Strategy.java @@ -0,0 +1,14 @@ +package com.woniu.celuejj.celue; + + +public interface Strategy { + /** + * 采用策略 + */ + String strategy(); + + /** + * 计算方法逻辑 + */ + void algorithm(); +} diff --git a/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/StrategyRunner.java b/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/StrategyRunner.java new file mode 100644 index 0000000..123dd61 --- /dev/null +++ b/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/StrategyRunner.java @@ -0,0 +1,5 @@ +package com.woniu.celuejj.celue; + +public interface StrategyRunner { + void execute(String strategy); +} \ No newline at end of file diff --git a/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/StrategyRunnerImpl.java b/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/StrategyRunnerImpl.java new file mode 100644 index 0000000..6bc9121 --- /dev/null +++ b/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/StrategyRunnerImpl.java @@ -0,0 +1,23 @@ +package com.woniu.celuejj.celue; + + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class StrategyRunnerImpl implements StrategyRunner { + + private static final List STRATEGIES = Arrays.asList(new ConcreteStrategyA(), new ConcreteStrategyB(), new ConcreteStrategyC()); + private static Map STRATEGY_MAP = new HashMap<>(); + + static { + STRATEGY_MAP = STRATEGIES.stream().collect(Collectors.toMap(Strategy::strategy, s -> s)); + } + + @Override + public void execute(String strategy) { + STRATEGY_MAP.get(strategy).algorithm(); + } +} diff --git a/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/StrategySelector.java b/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/StrategySelector.java new file mode 100644 index 0000000..1c51669 --- /dev/null +++ b/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/StrategySelector.java @@ -0,0 +1,26 @@ +package com.woniu.celuejj.celue; + + +public enum StrategySelector { + + strategyA(1, "strategyA"), + strategyB(2, "strategyB"), + strategyC(3, "strategyC"); + + private Integer code; + private String strategy; + + public String getStrategy() { + return strategy; + } + + public Integer getCode() { + return code; + } + + StrategySelector(Integer code, String strategy) { + this.code = code; + this.strategy = strategy; + } +} + diff --git a/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/TeT.java b/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/TeT.java new file mode 100644 index 0000000..e85ce14 --- /dev/null +++ b/celuemoshijingjian/src/main/java/com/woniu/celuejj/celue/TeT.java @@ -0,0 +1,19 @@ +package com.woniu.celuejj.celue; + +/** + * 商场搞活动, + * 根据客户购买商品的金额, + * 收费时给与不同的打折, + * 比如, + * 购买 金额>=2000 的打八折(0.8), + * 金额 500 ~ 1000 的,打九折(0.9), + * 购买金额 0 ~ 500 的九五折(0.95), + * 根据不同的金额走不同计算策略逻辑。 + */ +public class TeT { + + public static void main(String[] args) { + + + } +} diff --git a/celuemoshijingjian/src/main/java/com/woniu/celuejj/factory/DefaultHashMap.java b/celuemoshijingjian/src/main/java/com/woniu/celuejj/factory/DefaultHashMap.java new file mode 100644 index 0000000..6e79ec6 --- /dev/null +++ b/celuemoshijingjian/src/main/java/com/woniu/celuejj/factory/DefaultHashMap.java @@ -0,0 +1,19 @@ +package com.woniu.celuejj.factory; + +import java.util.HashMap; +import java.util.function.Function; +import java.util.function.Supplier; + +public class DefaultHashMap extends HashMap { + Function function; + + public DefaultHashMap(Supplier supplier) { + this.function = k -> supplier.get(); + } + + @Override + @SuppressWarnings("unchecked") + public V get(Object key) { + return super.computeIfAbsent((K) key, this.function); + } +} diff --git a/celuemoshijingjian/src/main/java/com/woniu/celuejj/factory/Test.java b/celuemoshijingjian/src/main/java/com/woniu/celuejj/factory/Test.java new file mode 100644 index 0000000..582046f --- /dev/null +++ b/celuemoshijingjian/src/main/java/com/woniu/celuejj/factory/Test.java @@ -0,0 +1,74 @@ +package com.woniu.celuejj.factory; + +import java.util.*; +import java.util.stream.Collectors; +//Java8中方便又实用的Map函数 +public class Test { + + static List users = Arrays.asList( + new User(1, 23), + new User(2, 25), + new User(3, 45), + new User(1, 49)); + + public static void main(String[] args) { + + Map> userMap = new HashMap<>(); + for (User user : users) { + if (!userMap.containsKey(user.getPayType())) { + userMap.put(user.getPayType(), new ArrayList<>()); + } + userMap.get(user.getPayType()).add(user); + } + System.out.println(userMap); + + + + + + + + + + + + + + + Map> collectMap = users. + stream(). + collect(Collectors.groupingBy(item -> item.getPayType())); + System.out.println(collectMap); + + + + + + + + + + Map> userMapNew = new HashMap<>(); + for (User user : users) { + userMapNew.computeIfAbsent(user.getPayType(), k -> new ArrayList<>()). + add(user); + } + + + + + + + + List userNews = users; + Map> userTypeMap = new DefaultHashMap<>(ArrayList::new); + for (User userNew : userNews) { + userTypeMap.get(userNew.getPayType()) + .add(userNew); + } + + + + } + +} diff --git a/celuemoshijingjian/src/main/java/com/woniu/celuejj/factory/User.java b/celuemoshijingjian/src/main/java/com/woniu/celuejj/factory/User.java new file mode 100644 index 0000000..8a32530 --- /dev/null +++ b/celuemoshijingjian/src/main/java/com/woniu/celuejj/factory/User.java @@ -0,0 +1,11 @@ +package com.woniu.celuejj.factory; + +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +public class User { + private Integer payType; + private Integer age; +} diff --git a/celuemoshijingjian/target/classes/com/woniu/celuejj/celue/ConcreteStrategyA.class b/celuemoshijingjian/target/classes/com/woniu/celuejj/celue/ConcreteStrategyA.class new file mode 100644 index 0000000000000000000000000000000000000000..3b85048a33d43c73d9091b708ab9246b2d0b66df GIT binary patch literal 841 zcma)4+iuf95Is|;+1NF-q!%c+rd;h5#X>^j0fbal;wb{8puBI)%H7EER=!a6ub>Y_ z;(-s~qY$%6owTYdc$wLmJ!j_3?Ee1q^A~_uc;TUiEf=?O$78eY;x6vBaNolNJQUaw z=m_i*ns0Tc%Xb7P2#18mf%&2ct9_lR57lI(^3QUVa;Duku}p_D*ET*+Hp)X?5cc}9 znMB7X(^V9!v{K{o%tr?%i*r?~L7B@^B`5oD2(98gAZ!F-e=NVsD3w_fF-T_#BV3s# zCfDWRgy0QKmB;G6wj#E!)azNg4-YE>k9<7F6CY2}7I^04IRe7=QEp;Y6rE$P*Qs0Y z_j)~n&_@@0gz&%R6V?`bKaR#KE(x9M==Icu;9rn|O1YNFdHA_TLigIm)}?D6Z*3(} zWu3mHb8u3WidX5Fiq&q;Hm*(diPvozN=}%*J{|0GnjnrWD9xA`Tz#r=h+PQ&Xe^t5 zox`4Ag00U{#GcqMcYlDs^I-`$*fyt02RHfb&j47(8b^d%XtTBCm+UQBoMPz=&Nn_@ qq>Br5F{iK3d%tG1rMstSw3pA&T=e(&%64wCnuP{;USwn1YV$8bQpB17 literal 0 HcmV?d00001 diff --git a/celuemoshijingjian/target/classes/com/woniu/celuejj/celue/ConcreteStrategyB.class b/celuemoshijingjian/target/classes/com/woniu/celuejj/celue/ConcreteStrategyB.class new file mode 100644 index 0000000000000000000000000000000000000000..12471259903358b151c7eba933ce105a2bb9e82e GIT binary patch literal 841 zcma)4+iuf95Is|;+1NF-q!%c+rd;h5#X>^j0mMTq@e~14P~JCY@8|9%c2z&k5 zOrm3x=_-mh&z$hldq`M?N0oiI1mf3q14j906hbC^xYxiq0|D>(s6H zd%d1O=%b50LipeE32O_zA4g*qmxRuB^m=MS@Gr(Vukx3-d~ zvQA&pIXEdw#jA8o#cDTa8`mcK#Ot;UB_~W@pAL38O%O*GlxEBeu0B;b#4ZGXG?vZ3 z&SB3l!Pe&}Vo&UsyFWnR`LKi=Y@5@hgPVNzX8^2XjU&P>wAotnOZJv5PO)?b=Nlg{ q(!~Y3nA6wiyqz@hWSkWVM^KjcXHr;dNVtk`sonPY1i6CWs?jl%$OFZ$4Ep#4ZGXG?vZ3 zuEw5Ug006<$e!3QcYc7r^I-{h*fyrgI_~n>n-yRcYa9{op~cpMU$eJhagL=6)Xw;L q72do87jyXfy!TtKws7Yh_15wQ8jJoeUxAfaiiHMePO>p=wfPrVvBanV literal 0 HcmV?d00001 diff --git a/celuemoshijingjian/target/classes/com/woniu/celuejj/celue/Strategy.class b/celuemoshijingjian/target/classes/com/woniu/celuejj/celue/Strategy.class new file mode 100644 index 0000000000000000000000000000000000000000..d6ec34d711ab8a25bbcf7e9d165debe0a2fd2583 GIT binary patch literal 189 zcmYL@y$ZrG9K`QmtNjqc!3S_`7qhszI|&X2_ZUJ7qu1g|@_Ar#yy=XE%>gi%!=2xa4XFXUER zNtngpXJ9pS2}|Kxc6FWZnUJ=Z#(Z@c{DJ0w%Km7i2onM!iN}B>jTEFn)G;Q}A!LJ( F{0+=vE};Mb literal 0 HcmV?d00001 diff --git a/celuemoshijingjian/target/classes/com/woniu/celuejj/celue/StrategyRunner.class b/celuemoshijingjian/target/classes/com/woniu/celuejj/celue/StrategyRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..7e4b68e75d014d9cf7060e94516b6641bfdf676a GIT binary patch literal 175 zcmYjLI|>3Z6r8uN8?_R|E6CcI#?IbK5L~d2;SmznEG&tit66ve4<#m8XfyL*K5t&{ z#}mLBV*w#BA_%^*j)4jDdgs(d$yRwIo6uWtHp?Sn(sZ%cytQpI&61!3oBJVp&;2SV u2n*ev<+bxRO3iI#=f0e4{@jG=@5BD&Sci&0DAFW=O2PnTzA#K!p!xvoq%Pn9 literal 0 HcmV?d00001 diff --git a/celuemoshijingjian/target/classes/com/woniu/celuejj/celue/StrategyRunnerImpl.class b/celuemoshijingjian/target/classes/com/woniu/celuejj/celue/StrategyRunnerImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..90cb6f735829f60fb76424ac71dde6006c61f014 GIT binary patch literal 2444 zcmb7GYgZdp6x}x@nJ^h3U;%BlElO*k*kHu^2vS3YLJfT|5gV)4%Ww$;lbJX(Y2{yO z`=O;QU4C}?n_QlonRJF%pXEs<`+-^u9({7Z`7AQSy z+NM9p(3787V@Ot<4Pre|HEnUH-CP%Ljjvm@GgNg9Zmn_Gl2H}H!_=vvR@=5M z+~sD=BI=6xO&D#TK!@{3X-gIvFRX=(+bM56F`{Sj=K2O7_k8Y~#`rYDV*XSPrHRu` z7#QXA{#gt&vxXIxPSu^ZYluZt7HYJ6k5SIoWeOTDV@$()xTxVC?lW9IO$ZuRF~%@) zl3m5I4OjT08?gKaw)1abTT!5EsNp*e@8CScU?lh@?ro7C6|8Ca9uMd>%sY-RZ?Cl? z{4Hn08%U#`!~KC?{E)*#4L{;1+WI+%DFu%-`~t3EU4wxQhQ0`xKp7@a%DkI#RAP!8 z>E!PEwlI8#t7r2k?KgxpkE=1jAk7?xmG7Hd4aYV8t!6iD=k=Fem+z8%(%h4cfZ+LW`dK;y0@Y_h> zylgu(zd#@61m2}jH#N~$>r3x!x$ur5^W^#2+_!wR5S^eQ>BnX zTscZoiOJvPFCs>{7^4I}!gV^&P!ipAo*+d#fS&#n$$HN|()H(1^m=k18JhL#_0&F8 znq~DD(4L`hAN{l%c!tDN^z9+X@RF#~5B;xsfw%T>P9`->=Q1VMp)y1@lx4}I4@KnY nyEBL$Ow(QhAEQa5N|rll!J@nPn$|MuGTF?df^WjvB5wT;e2$-f literal 0 HcmV?d00001 diff --git a/celuemoshijingjian/target/classes/com/woniu/celuejj/celue/StrategySelector.class b/celuemoshijingjian/target/classes/com/woniu/celuejj/celue/StrategySelector.class new file mode 100644 index 0000000000000000000000000000000000000000..f04e477c97a6492e7237e3ba8f161822f6261a6d GIT binary patch literal 1626 zcmb7EZBNr+6g|(@mu-~63PX8O5mC1xOcYeyL~w#xvdD)j3DGa5*4bt2lD$CuS2{$9 zM#E=+l=0rK3*{vS_Mx{uz2`pXo_o7Le}DW2uz*)lNO%y#LoBEmSFspF0*@Gc%$Fzp zxDeTTQ%Ksw&>CUHj^T~(**QD0+n~%GQC%) zH&;t<*9?J~cb5^P?3g6CDKMK#Uy3LdJhcNQ$F*O#Yuk3?jk#SV{i;`Sa5cA zWyI;Fx@A^3&4$CJ{rZw?*65hNvfb*LD=?f&pFN8#ZGCd6HgMzoLmepOm93Z^YnQq=&wRq8Rb3ziqwi1sT+C|;t^8= zpH27Exb0WSQsfG9<{OmL_K9sM7c6-ptSI|BvCv!sNXA7E(6GwbG}cC4cU7vI zM5ZM(QCw%TT+2q={EKwkd;LH-h_kv9PqopV$W+;>qS&BFRI+5#N@_#cTinKle3YV; zCKs!=(I#K^LuHe*&HRrtAzam6lc_6hw-~bFsr4Acg-6)`XE0&*J?$nfRMz4U4u9Sr z2fP7tnKG4mkQfIl++M<4prb2ss;Jt7okEgs&C<5=K9SgbB9$#wkY! Fvrmv3PV4{x literal 0 HcmV?d00001 diff --git a/celuemoshijingjian/target/classes/com/woniu/celuejj/factory/Test.class b/celuemoshijingjian/target/classes/com/woniu/celuejj/factory/Test.class new file mode 100644 index 0000000000000000000000000000000000000000..dd3cd2bb112cbce94fe0053a6c11a91264ede781 GIT binary patch literal 2824 zcma)8-E$LF6#s3LX6a_3r9exqLdAkD6jHE!NGl3eY$YvdO0j^-ZL&?b-Ry?VrX_x% zB7T4CgF3$Z=7=)_h0*cZafUbjTbyyw-`!2f#>UFa?%s3H{hf1u=VR}$w{QFmU;tle z=)|CkAq|hGjN`b56L?xKpJ}C?XEjXWbR1`JR>gBFo>%dLg4mF0o8BP>k)Ga31<_$AV<>1& znzk`s%uO5agqXG{X-zt5VND9xldl%31zpLslS?c*wpmQ14XbF(%_U|;+H>4e zV!|kRgT&1V(^k;db0#?_7DU1lb~cgnT+_}D`gV&2!(AEaBsC_zt`3lbMhU~+ zmcUBUGp$6@^gU4J)|kl4;CvVSO$vyqrX9;N(jFbG4YQQ5gt{kmNFolc5VP;;A>vMk z4$;z3u=HaewLK%tfI=E~2`hnDr#z9KC#0VUCf(2IIhGLjERmbeh;GSvcfW$YJ^$xw zZymo#wCNc+1zO4}x@qI6DXXAKrgN91PshEuPr;`D&b(wn1r?`}mf9H=hK?Cz6|Ai$ zU_=yV8HbKpm@3Zcn8Umd3ppJ&936R_XR@pMhh0~cBvU$E6m)nfDp*t954IL?Ud5u0 z3n;00QO8SoS;s4Qm6dVCalC@(iu{=2%{rMva|{<-P~_{i7VOvYI^IxmNynSGtl}*l zJMlI-ts0=SD~2r@q8a~ypXuY%bAD;HRxw6B!xe0g3KQXqU^OlX_R#Se*)F5?bJN>X zCuMa+vb6$N{A%~fV|&CzLGq+vYfV1}o(`5xhMQ*CCW9Z_y z9w-oE3s+5e0Ns@Eu<{L5G*b45`V$(aA~*SnUPq**osVmXrlz7&)F?$A6;Y!U#iVFw zMHIVpaCcdB9gWGGh)rFCI<{j8s}zjyTtbtAuQ0+7O~Ef{I2i5gh+ai}33>y*Mq9AD ziPb!|W(my^oT@0aH1NRMj_49v8*u8|zkmDz>-w%@J+U_^xPdm{I@*`8QR;P!mv$+la0~7Do%gveo*E!Ui`b8? z*hVyxg$L2Y_XIAX7u!kYS^nR4ppVqw!Ycl-`k13#)ac?n(2`jSwEFL8^>cSOwb~K6 zjkJnADjrfX@D~PD?EMoPTQu2WL8d}!CSl+6R5;CTHEBLTKV_9X>}wsw$9!vq`4FGt SBgT~CT9(8FbxvXur~U!t8~Z!} literal 0 HcmV?d00001 diff --git a/celuemoshijingjian/target/classes/com/woniu/celuejj/factory/User.class b/celuemoshijingjian/target/classes/com/woniu/celuejj/factory/User.class new file mode 100644 index 0000000000000000000000000000000000000000..ca9c0cd4d8feb371bffc9e9b5617aa1d776fc031 GIT binary patch literal 1955 zcma)7TT@$A6#jP3HR++ylt5##qN3*7c&V3$i?)TfRG>_$ozW)`;YfmMg5gAmzv2&& z7anxRrZYO@=u4gPH~2GrwAOF!b3y`T90z9awb%akTHpHCS@6d{Km7vW3f7Y_Fe}TP zgZUKq1zA2!A&rm3x+d0j2RBkkV$sEt>^Eh(<>I!BWijsvXwkvP3eK*-e}8{BP&mJ` zX3)9sZ#L;k zue57^^MT)K$T@bJVZE`ZFuhW1KdgMyZZ*1{mY7(-dqbzouF2 z4Y8QWokAl2K*1(T!|mX!uHR&i%rNxs=1x!xXY-#asJ3t$R2^R_SnaSLbQC<{ICG@X zh;|RouD;d+C8H~Ck8Ff~?aNhvS69k5X`$Vk-&ztv3U1xst4CrPx%@Kot>0T-T_Pdc zb|={DHbbHYiOd-t*bUnoVW-jBRv16lgUHKn*>jCnBV16(50~8U=1{49mk5^HXm>lc z;ATU5l@!r0izXh4aBhGEf2fVNC=d4}lvL040#6n0in~?#5$byl%W}1~Gl>^y zdl3K^F~yS-!ML7$oH+S7b?W0wcqx8d)!dk>P<#aS!->?kemy~qkcm=@CAA3S>C@vR z{%;)7LgMff;3~!Z#as^eda>{wEc3AV8;oyZ8HdGRVXT%4J(&7P!&)nGshZ{AaVBd% z!MOu?<*eC*-A6c8ix8)3XDz|lPmn&qNY={QeUN#`Tm}YWM-|_WI2=`6$E%nj!wfd? z8XJ({X%Vk;HBi6;-k@dT7VF5-viLn-M4pz-TTrE> + + + + + + + + + + + + + \ No newline at end of file diff --git a/usemap/.idea/jarRepositories.xml b/usemap/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/usemap/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/usemap/.idea/misc.xml b/usemap/.idea/misc.xml new file mode 100644 index 0000000..4b661a5 --- /dev/null +++ b/usemap/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/usemap/celuemoshijingjian.iml b/usemap/celuemoshijingjian.iml new file mode 100644 index 0000000..78b2cc5 --- /dev/null +++ b/usemap/celuemoshijingjian.iml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/usemap/pom.xml b/usemap/pom.xml new file mode 100644 index 0000000..af87166 --- /dev/null +++ b/usemap/pom.xml @@ -0,0 +1,21 @@ + + + 4.0.0 + + com.woniu + celuemoshijingjian + 1.0-SNAPSHOT + + + + + org.projectlombok + lombok + 1.18.24 + + + + + \ No newline at end of file diff --git a/usemap/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyA.java b/usemap/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyA.java new file mode 100644 index 0000000..ed9f82e --- /dev/null +++ b/usemap/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyA.java @@ -0,0 +1,15 @@ +package com.woniu.celuejj.celue; + +public class ConcreteStrategyA implements Strategy { + + @Override + public String strategy() { + return StrategySelector.strategyA.getStrategy(); + } + + @Override + public void algorithm() { + System.out.println("process with strategyA..."); + } +} + diff --git a/usemap/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyB.java b/usemap/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyB.java new file mode 100644 index 0000000..1f27da9 --- /dev/null +++ b/usemap/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyB.java @@ -0,0 +1,15 @@ +package com.woniu.celuejj.celue; + +public class ConcreteStrategyB implements Strategy { + + @Override + public String strategy() { + return StrategySelector.strategyB.getStrategy(); + } + + @Override + public void algorithm() { + System.out.println("process with strategyB..."); + } +} + diff --git a/usemap/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyC.java b/usemap/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyC.java new file mode 100644 index 0000000..0cbad5b --- /dev/null +++ b/usemap/src/main/java/com/woniu/celuejj/celue/ConcreteStrategyC.java @@ -0,0 +1,16 @@ +package com.woniu.celuejj.celue; + + +public class ConcreteStrategyC implements Strategy { + + @Override + public String strategy() { + return StrategySelector.strategyC.getStrategy(); + } + + @Override + public void algorithm() { + System.out.println("process with strategyC..."); + } +} + diff --git a/usemap/src/main/java/com/woniu/celuejj/celue/Strategy.java b/usemap/src/main/java/com/woniu/celuejj/celue/Strategy.java new file mode 100644 index 0000000..b6ddf75 --- /dev/null +++ b/usemap/src/main/java/com/woniu/celuejj/celue/Strategy.java @@ -0,0 +1,14 @@ +package com.woniu.celuejj.celue; + + +public interface Strategy { + /** + * 采用策略 + */ + String strategy(); + + /** + * 计算方法逻辑 + */ + void algorithm(); +} diff --git a/usemap/src/main/java/com/woniu/celuejj/celue/StrategyRunner.java b/usemap/src/main/java/com/woniu/celuejj/celue/StrategyRunner.java new file mode 100644 index 0000000..123dd61 --- /dev/null +++ b/usemap/src/main/java/com/woniu/celuejj/celue/StrategyRunner.java @@ -0,0 +1,5 @@ +package com.woniu.celuejj.celue; + +public interface StrategyRunner { + void execute(String strategy); +} \ No newline at end of file diff --git a/usemap/src/main/java/com/woniu/celuejj/celue/StrategyRunnerImpl.java b/usemap/src/main/java/com/woniu/celuejj/celue/StrategyRunnerImpl.java new file mode 100644 index 0000000..6bc9121 --- /dev/null +++ b/usemap/src/main/java/com/woniu/celuejj/celue/StrategyRunnerImpl.java @@ -0,0 +1,23 @@ +package com.woniu.celuejj.celue; + + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class StrategyRunnerImpl implements StrategyRunner { + + private static final List STRATEGIES = Arrays.asList(new ConcreteStrategyA(), new ConcreteStrategyB(), new ConcreteStrategyC()); + private static Map STRATEGY_MAP = new HashMap<>(); + + static { + STRATEGY_MAP = STRATEGIES.stream().collect(Collectors.toMap(Strategy::strategy, s -> s)); + } + + @Override + public void execute(String strategy) { + STRATEGY_MAP.get(strategy).algorithm(); + } +} diff --git a/usemap/src/main/java/com/woniu/celuejj/celue/StrategySelector.java b/usemap/src/main/java/com/woniu/celuejj/celue/StrategySelector.java new file mode 100644 index 0000000..1c51669 --- /dev/null +++ b/usemap/src/main/java/com/woniu/celuejj/celue/StrategySelector.java @@ -0,0 +1,26 @@ +package com.woniu.celuejj.celue; + + +public enum StrategySelector { + + strategyA(1, "strategyA"), + strategyB(2, "strategyB"), + strategyC(3, "strategyC"); + + private Integer code; + private String strategy; + + public String getStrategy() { + return strategy; + } + + public Integer getCode() { + return code; + } + + StrategySelector(Integer code, String strategy) { + this.code = code; + this.strategy = strategy; + } +} + diff --git a/usemap/src/main/java/com/woniu/celuejj/celue/TeT.java b/usemap/src/main/java/com/woniu/celuejj/celue/TeT.java new file mode 100644 index 0000000..e85ce14 --- /dev/null +++ b/usemap/src/main/java/com/woniu/celuejj/celue/TeT.java @@ -0,0 +1,19 @@ +package com.woniu.celuejj.celue; + +/** + * 商场搞活动, + * 根据客户购买商品的金额, + * 收费时给与不同的打折, + * 比如, + * 购买 金额>=2000 的打八折(0.8), + * 金额 500 ~ 1000 的,打九折(0.9), + * 购买金额 0 ~ 500 的九五折(0.95), + * 根据不同的金额走不同计算策略逻辑。 + */ +public class TeT { + + public static void main(String[] args) { + + + } +} diff --git a/usemap/src/main/java/com/woniu/celuejj/factory/DefaultHashMap.java b/usemap/src/main/java/com/woniu/celuejj/factory/DefaultHashMap.java new file mode 100644 index 0000000..6e79ec6 --- /dev/null +++ b/usemap/src/main/java/com/woniu/celuejj/factory/DefaultHashMap.java @@ -0,0 +1,19 @@ +package com.woniu.celuejj.factory; + +import java.util.HashMap; +import java.util.function.Function; +import java.util.function.Supplier; + +public class DefaultHashMap extends HashMap { + Function function; + + public DefaultHashMap(Supplier supplier) { + this.function = k -> supplier.get(); + } + + @Override + @SuppressWarnings("unchecked") + public V get(Object key) { + return super.computeIfAbsent((K) key, this.function); + } +} diff --git a/usemap/src/main/java/com/woniu/celuejj/factory/Test.java b/usemap/src/main/java/com/woniu/celuejj/factory/Test.java new file mode 100644 index 0000000..582046f --- /dev/null +++ b/usemap/src/main/java/com/woniu/celuejj/factory/Test.java @@ -0,0 +1,74 @@ +package com.woniu.celuejj.factory; + +import java.util.*; +import java.util.stream.Collectors; +//Java8中方便又实用的Map函数 +public class Test { + + static List users = Arrays.asList( + new User(1, 23), + new User(2, 25), + new User(3, 45), + new User(1, 49)); + + public static void main(String[] args) { + + Map> userMap = new HashMap<>(); + for (User user : users) { + if (!userMap.containsKey(user.getPayType())) { + userMap.put(user.getPayType(), new ArrayList<>()); + } + userMap.get(user.getPayType()).add(user); + } + System.out.println(userMap); + + + + + + + + + + + + + + + Map> collectMap = users. + stream(). + collect(Collectors.groupingBy(item -> item.getPayType())); + System.out.println(collectMap); + + + + + + + + + + Map> userMapNew = new HashMap<>(); + for (User user : users) { + userMapNew.computeIfAbsent(user.getPayType(), k -> new ArrayList<>()). + add(user); + } + + + + + + + + List userNews = users; + Map> userTypeMap = new DefaultHashMap<>(ArrayList::new); + for (User userNew : userNews) { + userTypeMap.get(userNew.getPayType()) + .add(userNew); + } + + + + } + +} diff --git a/usemap/src/main/java/com/woniu/celuejj/factory/User.java b/usemap/src/main/java/com/woniu/celuejj/factory/User.java new file mode 100644 index 0000000..8a32530 --- /dev/null +++ b/usemap/src/main/java/com/woniu/celuejj/factory/User.java @@ -0,0 +1,11 @@ +package com.woniu.celuejj.factory; + +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +public class User { + private Integer payType; + private Integer age; +} diff --git a/usemap/target/classes/com/woniu/celuejj/celue/ConcreteStrategyA.class b/usemap/target/classes/com/woniu/celuejj/celue/ConcreteStrategyA.class new file mode 100644 index 0000000000000000000000000000000000000000..3b85048a33d43c73d9091b708ab9246b2d0b66df GIT binary patch literal 841 zcma)4+iuf95Is|;+1NF-q!%c+rd;h5#X>^j0fbal;wb{8puBI)%H7EER=!a6ub>Y_ z;(-s~qY$%6owTYdc$wLmJ!j_3?Ee1q^A~_uc;TUiEf=?O$78eY;x6vBaNolNJQUaw z=m_i*ns0Tc%Xb7P2#18mf%&2ct9_lR57lI(^3QUVa;Duku}p_D*ET*+Hp)X?5cc}9 znMB7X(^V9!v{K{o%tr?%i*r?~L7B@^B`5oD2(98gAZ!F-e=NVsD3w_fF-T_#BV3s# zCfDWRgy0QKmB;G6wj#E!)azNg4-YE>k9<7F6CY2}7I^04IRe7=QEp;Y6rE$P*Qs0Y z_j)~n&_@@0gz&%R6V?`bKaR#KE(x9M==Icu;9rn|O1YNFdHA_TLigIm)}?D6Z*3(} zWu3mHb8u3WidX5Fiq&q;Hm*(diPvozN=}%*J{|0GnjnrWD9xA`Tz#r=h+PQ&Xe^t5 zox`4Ag00U{#GcqMcYlDs^I-`$*fyt02RHfb&j47(8b^d%XtTBCm+UQBoMPz=&Nn_@ qq>Br5F{iK3d%tG1rMstSw3pA&T=e(&%64wCnuP{;USwn1YV$8bQpB17 literal 0 HcmV?d00001 diff --git a/usemap/target/classes/com/woniu/celuejj/celue/ConcreteStrategyB.class b/usemap/target/classes/com/woniu/celuejj/celue/ConcreteStrategyB.class new file mode 100644 index 0000000000000000000000000000000000000000..12471259903358b151c7eba933ce105a2bb9e82e GIT binary patch literal 841 zcma)4+iuf95Is|;+1NF-q!%c+rd;h5#X>^j0mMTq@e~14P~JCY@8|9%c2z&k5 zOrm3x=_-mh&z$hldq`M?N0oiI1mf3q14j906hbC^xYxiq0|D>(s6H zd%d1O=%b50LipeE32O_zA4g*qmxRuB^m=MS@Gr(Vukx3-d~ zvQA&pIXEdw#jA8o#cDTa8`mcK#Ot;UB_~W@pAL38O%O*GlxEBeu0B;b#4ZGXG?vZ3 z&SB3l!Pe&}Vo&UsyFWnR`LKi=Y@5@hgPVNzX8^2XjU&P>wAotnOZJv5PO)?b=Nlg{ q(!~Y3nA6wiyqz@hWSkWVM^KjcXHr;dNVtk`sonPY1i6CWs?jl%$OFZ$4Ep#4ZGXG?vZ3 zuEw5Ug006<$e!3QcYc7r^I-{h*fyrgI_~n>n-yRcYa9{op~cpMU$eJhagL=6)Xw;L q72do87jyXfy!TtKws7Yh_15wQ8jJoeUxAfaiiHMePO>p=wfPrVvBanV literal 0 HcmV?d00001 diff --git a/usemap/target/classes/com/woniu/celuejj/celue/Strategy.class b/usemap/target/classes/com/woniu/celuejj/celue/Strategy.class new file mode 100644 index 0000000000000000000000000000000000000000..d6ec34d711ab8a25bbcf7e9d165debe0a2fd2583 GIT binary patch literal 189 zcmYL@y$ZrG9K`QmtNjqc!3S_`7qhszI|&X2_ZUJ7qu1g|@_Ar#yy=XE%>gi%!=2xa4XFXUER zNtngpXJ9pS2}|Kxc6FWZnUJ=Z#(Z@c{DJ0w%Km7i2onM!iN}B>jTEFn)G;Q}A!LJ( F{0+=vE};Mb literal 0 HcmV?d00001 diff --git a/usemap/target/classes/com/woniu/celuejj/celue/StrategyRunner.class b/usemap/target/classes/com/woniu/celuejj/celue/StrategyRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..7e4b68e75d014d9cf7060e94516b6641bfdf676a GIT binary patch literal 175 zcmYjLI|>3Z6r8uN8?_R|E6CcI#?IbK5L~d2;SmznEG&tit66ve4<#m8XfyL*K5t&{ z#}mLBV*w#BA_%^*j)4jDdgs(d$yRwIo6uWtHp?Sn(sZ%cytQpI&61!3oBJVp&;2SV u2n*ev<+bxRO3iI#=f0e4{@jG=@5BD&Sci&0DAFW=O2PnTzA#K!p!xvoq%Pn9 literal 0 HcmV?d00001 diff --git a/usemap/target/classes/com/woniu/celuejj/celue/StrategyRunnerImpl.class b/usemap/target/classes/com/woniu/celuejj/celue/StrategyRunnerImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..90cb6f735829f60fb76424ac71dde6006c61f014 GIT binary patch literal 2444 zcmb7GYgZdp6x}x@nJ^h3U;%BlElO*k*kHu^2vS3YLJfT|5gV)4%Ww$;lbJX(Y2{yO z`=O;QU4C}?n_QlonRJF%pXEs<`+-^u9({7Z`7AQSy z+NM9p(3787V@Ot<4Pre|HEnUH-CP%Ljjvm@GgNg9Zmn_Gl2H}H!_=vvR@=5M z+~sD=BI=6xO&D#TK!@{3X-gIvFRX=(+bM56F`{Sj=K2O7_k8Y~#`rYDV*XSPrHRu` z7#QXA{#gt&vxXIxPSu^ZYluZt7HYJ6k5SIoWeOTDV@$()xTxVC?lW9IO$ZuRF~%@) zl3m5I4OjT08?gKaw)1abTT!5EsNp*e@8CScU?lh@?ro7C6|8Ca9uMd>%sY-RZ?Cl? z{4Hn08%U#`!~KC?{E)*#4L{;1+WI+%DFu%-`~t3EU4wxQhQ0`xKp7@a%DkI#RAP!8 z>E!PEwlI8#t7r2k?KgxpkE=1jAk7?xmG7Hd4aYV8t!6iD=k=Fem+z8%(%h4cfZ+LW`dK;y0@Y_h> zylgu(zd#@61m2}jH#N~$>r3x!x$ur5^W^#2+_!wR5S^eQ>BnX zTscZoiOJvPFCs>{7^4I}!gV^&P!ipAo*+d#fS&#n$$HN|()H(1^m=k18JhL#_0&F8 znq~DD(4L`hAN{l%c!tDN^z9+X@RF#~5B;xsfw%T>P9`->=Q1VMp)y1@lx4}I4@KnY nyEBL$Ow(QhAEQa5N|rll!J@nPn$|MuGTF?df^WjvB5wT;e2$-f literal 0 HcmV?d00001 diff --git a/usemap/target/classes/com/woniu/celuejj/celue/StrategySelector.class b/usemap/target/classes/com/woniu/celuejj/celue/StrategySelector.class new file mode 100644 index 0000000000000000000000000000000000000000..f04e477c97a6492e7237e3ba8f161822f6261a6d GIT binary patch literal 1626 zcmb7EZBNr+6g|(@mu-~63PX8O5mC1xOcYeyL~w#xvdD)j3DGa5*4bt2lD$CuS2{$9 zM#E=+l=0rK3*{vS_Mx{uz2`pXo_o7Le}DW2uz*)lNO%y#LoBEmSFspF0*@Gc%$Fzp zxDeTTQ%Ksw&>CUHj^T~(**QD0+n~%GQC%) zH&;t<*9?J~cb5^P?3g6CDKMK#Uy3LdJhcNQ$F*O#Yuk3?jk#SV{i;`Sa5cA zWyI;Fx@A^3&4$CJ{rZw?*65hNvfb*LD=?f&pFN8#ZGCd6HgMzoLmepOm93Z^YnQq=&wRq8Rb3ziqwi1sT+C|;t^8= zpH27Exb0WSQsfG9<{OmL_K9sM7c6-ptSI|BvCv!sNXA7E(6GwbG}cC4cU7vI zM5ZM(QCw%TT+2q={EKwkd;LH-h_kv9PqopV$W+;>qS&BFRI+5#N@_#cTinKle3YV; zCKs!=(I#K^LuHe*&HRrtAzam6lc_6hw-~bFsr4Acg-6)`XE0&*J?$nfRMz4U4u9Sr z2fP7tnKG4mkQfIl++M<4prb2ss;Jt7okEgs&C<5=K9SgbB9$#wkY! Fvrmv3PV4{x literal 0 HcmV?d00001 diff --git a/usemap/target/classes/com/woniu/celuejj/factory/Test.class b/usemap/target/classes/com/woniu/celuejj/factory/Test.class new file mode 100644 index 0000000000000000000000000000000000000000..dd3cd2bb112cbce94fe0053a6c11a91264ede781 GIT binary patch literal 2824 zcma)8-E$LF6#s3LX6a_3r9exqLdAkD6jHE!NGl3eY$YvdO0j^-ZL&?b-Ry?VrX_x% zB7T4CgF3$Z=7=)_h0*cZafUbjTbyyw-`!2f#>UFa?%s3H{hf1u=VR}$w{QFmU;tle z=)|CkAq|hGjN`b56L?xKpJ}C?XEjXWbR1`JR>gBFo>%dLg4mF0o8BP>k)Ga31<_$AV<>1& znzk`s%uO5agqXG{X-zt5VND9xldl%31zpLslS?c*wpmQ14XbF(%_U|;+H>4e zV!|kRgT&1V(^k;db0#?_7DU1lb~cgnT+_}D`gV&2!(AEaBsC_zt`3lbMhU~+ zmcUBUGp$6@^gU4J)|kl4;CvVSO$vyqrX9;N(jFbG4YQQ5gt{kmNFolc5VP;;A>vMk z4$;z3u=HaewLK%tfI=E~2`hnDr#z9KC#0VUCf(2IIhGLjERmbeh;GSvcfW$YJ^$xw zZymo#wCNc+1zO4}x@qI6DXXAKrgN91PshEuPr;`D&b(wn1r?`}mf9H=hK?Cz6|Ai$ zU_=yV8HbKpm@3Zcn8Umd3ppJ&936R_XR@pMhh0~cBvU$E6m)nfDp*t954IL?Ud5u0 z3n;00QO8SoS;s4Qm6dVCalC@(iu{=2%{rMva|{<-P~_{i7VOvYI^IxmNynSGtl}*l zJMlI-ts0=SD~2r@q8a~ypXuY%bAD;HRxw6B!xe0g3KQXqU^OlX_R#Se*)F5?bJN>X zCuMa+vb6$N{A%~fV|&CzLGq+vYfV1}o(`5xhMQ*CCW9Z_y z9w-oE3s+5e0Ns@Eu<{L5G*b45`V$(aA~*SnUPq**osVmXrlz7&)F?$A6;Y!U#iVFw zMHIVpaCcdB9gWGGh)rFCI<{j8s}zjyTtbtAuQ0+7O~Ef{I2i5gh+ai}33>y*Mq9AD ziPb!|W(my^oT@0aH1NRMj_49v8*u8|zkmDz>-w%@J+U_^xPdm{I@*`8QR;P!mv$+la0~7Do%gveo*E!Ui`b8? z*hVyxg$L2Y_XIAX7u!kYS^nR4ppVqw!Ycl-`k13#)ac?n(2`jSwEFL8^>cSOwb~K6 zjkJnADjrfX@D~PD?EMoPTQu2WL8d}!CSl+6R5;CTHEBLTKV_9X>}wsw$9!vq`4FGt SBgT~CT9(8FbxvXur~U!t8~Z!} literal 0 HcmV?d00001 diff --git a/usemap/target/classes/com/woniu/celuejj/factory/User.class b/usemap/target/classes/com/woniu/celuejj/factory/User.class new file mode 100644 index 0000000000000000000000000000000000000000..ca9c0cd4d8feb371bffc9e9b5617aa1d776fc031 GIT binary patch literal 1955 zcma)7TT@$A6#jP3HR++ylt5##qN3*7c&V3$i?)TfRG>_$ozW)`;YfmMg5gAmzv2&& z7anxRrZYO@=u4gPH~2GrwAOF!b3y`T90z9awb%akTHpHCS@6d{Km7vW3f7Y_Fe}TP zgZUKq1zA2!A&rm3x+d0j2RBkkV$sEt>^Eh(<>I!BWijsvXwkvP3eK*-e}8{BP&mJ` zX3)9sZ#L;k zue57^^MT)K$T@bJVZE`ZFuhW1KdgMyZZ*1{mY7(-dqbzouF2 z4Y8QWokAl2K*1(T!|mX!uHR&i%rNxs=1x!xXY-#asJ3t$R2^R_SnaSLbQC<{ICG@X zh;|RouD;d+C8H~Ck8Ff~?aNhvS69k5X`$Vk-&ztv3U1xst4CrPx%@Kot>0T-T_Pdc zb|={DHbbHYiOd-t*bUnoVW-jBRv16lgUHKn*>jCnBV16(50~8U=1{49mk5^HXm>lc z;ATU5l@!r0izXh4aBhGEf2fVNC=d4}lvL040#6n0in~?#5$byl%W}1~Gl>^y zdl3K^F~yS-!ML7$oH+S7b?W0wcqx8d)!dk>P<#aS!->?kemy~qkcm=@CAA3S>C@vR z{%;)7LgMff;3~!Z#as^eda>{wEc3AV8;oyZ8HdGRVXT%4J(&7P!&)nGshZ{AaVBd% z!MOu?<*eC*-A6c8ix8)3XDz|lPmn&qNY={QeUN#`Tm}YWM-|_WI2=`6$E%nj!wfd? z8XJ({X%Vk;HBi6;-k@dT7VF5-viLn-M4pz-TTrE>