diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..94a25f7f4cb416c083d265558da75d457237d671
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/Client.java b/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/Client.java
index 86b52a88f591d920985836b7ebb045391d487476..98481f6c20d9f1a0a1e80ff5b105e78a7fef1bb4 100644
--- a/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/Client.java
+++ b/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/Client.java
@@ -1,5 +1,8 @@
package com.mxdl.desigin.pattern.behavior.mediator;
+import com.mxdl.desigin.pattern.behavior.mediator.entity.ConcreateColleagueA;
+import com.mxdl.desigin.pattern.behavior.mediator.entity.ConcreateColleagueB;
+
/**
* Description:
* Author: mxdl
diff --git a/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/ConcreateMediator.java b/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/ConcreateMediator.java
index b10f9993328b32da7387b1b674a3015bd24318bc..a154823eb7df74437aa07cd491bf490123845f4b 100644
--- a/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/ConcreateMediator.java
+++ b/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/ConcreateMediator.java
@@ -1,5 +1,10 @@
package com.mxdl.desigin.pattern.behavior.mediator;
+import com.mxdl.desigin.pattern.behavior.mediator.contract.IColleague;
+import com.mxdl.desigin.pattern.behavior.mediator.contract.IMediator;
+import com.mxdl.desigin.pattern.behavior.mediator.entity.ConcreateColleagueA;
+import com.mxdl.desigin.pattern.behavior.mediator.entity.ConcreateColleagueB;
+
/**
* Description:
* Author: mxdl
@@ -7,7 +12,7 @@ package com.mxdl.desigin.pattern.behavior.mediator;
* Version: V1.0.0
* Update:
*/
-public class ConcreateMediator implements Mediator {
+public class ConcreateMediator implements IMediator {
private ConcreateColleagueA mColleagueA;
private ConcreateColleagueB mColleagueB;
@@ -20,7 +25,7 @@ public class ConcreateMediator implements Mediator {
}
@Override
- public void sendMessage(String msg, Colleague colleague) {
+ public void sendMessage(String msg, IColleague colleague) {
System.out.println("中介开始转发消息");
if(colleague == mColleagueA){
//如果是A发来了消息,则把这个消息转发给B
diff --git a/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/Mediator.java b/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/Mediator.java
deleted file mode 100644
index 3d3b125103cd75de760ee58b24cf364aa7203eb5..0000000000000000000000000000000000000000
--- a/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/Mediator.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.mxdl.desigin.pattern.behavior.mediator;
-
-/**
- * Description:
- * Author: mxdl
- * Date: 2019/12/20
- * Version: V1.0.0
- * Update:
- */
-public interface Mediator {
- void sendMessage(String msg,Colleague colleague);
-}
diff --git a/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/Colleague.java b/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/contract/IColleague.java
similarity index 60%
rename from lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/Colleague.java
rename to lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/contract/IColleague.java
index 75126c4f2f36cdfb5f77554e1d0584a861004f0f..296be902300f07e24e86573498b6a8367b8279e0 100644
--- a/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/Colleague.java
+++ b/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/contract/IColleague.java
@@ -1,13 +1,13 @@
-package com.mxdl.desigin.pattern.behavior.mediator;
+package com.mxdl.desigin.pattern.behavior.mediator.contract;
/**
- * Description:
+ * Description:
* Author: mxdl
* Date: 2019/12/20
* Version: V1.0.0
* Update:
*/
-public interface Colleague {
+public interface IColleague {
void sendMessage(String message);
void notifyMessage(String messaege);
}
diff --git a/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/contract/IMediator.java b/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/contract/IMediator.java
new file mode 100644
index 0000000000000000000000000000000000000000..b9125d664e5963f776704cced3a0c86b7717961f
--- /dev/null
+++ b/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/contract/IMediator.java
@@ -0,0 +1,14 @@
+package com.mxdl.desigin.pattern.behavior.mediator.contract;
+
+import com.mxdl.desigin.pattern.behavior.mediator.contract.IColleague;
+
+/**
+ * Description:
+ * Author: mxdl
+ * Date: 2019/12/20
+ * Version: V1.0.0
+ * Update:
+ */
+public interface IMediator {
+ void sendMessage(String msg, IColleague colleague);
+}
diff --git a/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/ConcreateColleagueA.java b/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/entity/ConcreateColleagueA.java
similarity index 59%
rename from lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/ConcreateColleagueA.java
rename to lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/entity/ConcreateColleagueA.java
index 80a5eb83b677bbef06a678f395f20c8c5ab2c236..4d1ec231157b861657d3aba0eaf07025a68206a2 100644
--- a/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/ConcreateColleagueA.java
+++ b/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/entity/ConcreateColleagueA.java
@@ -1,4 +1,7 @@
-package com.mxdl.desigin.pattern.behavior.mediator;
+package com.mxdl.desigin.pattern.behavior.mediator.entity;
+
+import com.mxdl.desigin.pattern.behavior.mediator.contract.IColleague;
+import com.mxdl.desigin.pattern.behavior.mediator.contract.IMediator;
/**
* Description:
@@ -7,10 +10,10 @@ package com.mxdl.desigin.pattern.behavior.mediator;
* Version: V1.0.0
* Update:
*/
-public class ConcreateColleagueA implements Colleague {
- Mediator mMediator;
+public class ConcreateColleagueA implements IColleague {
+ IMediator mMediator;
- public ConcreateColleagueA(Mediator mediator) {
+ public ConcreateColleagueA(IMediator mediator) {
mMediator = mediator;
}
diff --git a/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/ConcreateColleagueB.java b/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/entity/ConcreateColleagueB.java
similarity index 59%
rename from lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/ConcreateColleagueB.java
rename to lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/entity/ConcreateColleagueB.java
index 4e9cdc9c766b216598291e40763c8788cf00770f..159bf9a811689e4b4d5b3b94311eecd912012b7a 100644
--- a/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/ConcreateColleagueB.java
+++ b/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/entity/ConcreateColleagueB.java
@@ -1,4 +1,7 @@
-package com.mxdl.desigin.pattern.behavior.mediator;
+package com.mxdl.desigin.pattern.behavior.mediator.entity;
+
+import com.mxdl.desigin.pattern.behavior.mediator.contract.IColleague;
+import com.mxdl.desigin.pattern.behavior.mediator.contract.IMediator;
/**
* Description:
@@ -7,10 +10,10 @@ package com.mxdl.desigin.pattern.behavior.mediator;
* Version: V1.0.0
* Update:
*/
-public class ConcreateColleagueB implements Colleague {
- Mediator mMediator;
+public class ConcreateColleagueB implements IColleague {
+ IMediator mMediator;
- public ConcreateColleagueB(Mediator mediator) {
+ public ConcreateColleagueB(IMediator mediator) {
mMediator = mediator;
}
diff --git a/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/mediator.puml b/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/mediator.puml
new file mode 100644
index 0000000000000000000000000000000000000000..8d3a3d2cff17d526da3a98a93374a5f4dae8f471
--- /dev/null
+++ b/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/mediator.puml
@@ -0,0 +1,15 @@
+@startuml
+interface IColleague {
+ void sendMessage(String message);
+ void notifyMessage(String messaege);
+}
+interface IMediator {
+ void sendMessage(String msg, IColleague colleague);
+}
+class ConcreateColleagueA implements IColleague
+class ConcreateColleagueB implements IColleague
+class ConcreateMediator implements IMediator
+ConcreateMediator --> ConcreateColleagueA
+ConcreateMediator --> ConcreateColleagueB
+
+@enduml
\ No newline at end of file
diff --git a/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/note.txt b/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/note.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d747ab43bb2107633344198a10b921b35e251837
--- /dev/null
+++ b/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/note.txt
@@ -0,0 +1,4 @@
+特点:把多个对象之间多对多的网状关系办成了一对多的星状关系,各个对象通过中介者进行通信
+优点:关系对象之间的耦合度降低了
+缺点:中介类的责任过于重大,一旦它出错了,整个系统都处于一种危险境地
+举例:联合国就是一个中介,用来调停各国之间的矛盾和冲突,维护世界和平
\ No newline at end of file
diff --git a/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/vistor/note.txt b/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/vistor/note.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6da5160a40af37f13f3390e41a6c83cb13d4ca6b
--- /dev/null
+++ b/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/vistor/note.txt
@@ -0,0 +1,4 @@
+特点:访问者模式适用于数据结构比较稳当的数据,它把数据结构和基于数据结构的操作彻底分开
+优点:使得操作数据的操作可以自由的演化
+缺点:但是如果新增了数据结构处理就变得麻烦
+距离:男人和女人在不同状态下的不同体现
\ No newline at end of file
diff --git a/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/vistor/vistor.puml b/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/vistor/vistor.puml
index 7f94946406f0b23da83eed814e08463f4709a9a1..009ff076c80bbc6c168e18f582e86c0c1a8573b1 100644
--- a/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/vistor/vistor.puml
+++ b/lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/vistor/vistor.puml
@@ -3,25 +3,26 @@ interface IVistor{
void vistorMan(Man manager);
void vistorWoman(Woman expler);
}
-note left:访问协议
-class SuccVistor implements IVistor{
-}
-class FailVistor implements IVistor{
-}
+note left:访问者协议
+
+class SuccVistor
+note left:成功的访问者
+class SuccVistor implements IVistor
+
+class FailVistor
+note right:失败的访问者
+class FailVistor implements IVistor
+
class Person{
String name;
void accept(IVistor vistor);
}
-note right:被访问的实体对象
+note left:被访问的实体对象
class Man extends Person{
}
class Woman extends Person{
}
Person -.> IVistor
-'IVistor -.> Man
-'IVistor -.> Woman
-class Client
-Client --> IVistor
-Client --> Person
+
@enduml
\ No newline at end of file