Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
门心叼龙
java-design-pattern
提交
0fe4d21a
J
java-design-pattern
项目概览
门心叼龙
/
java-design-pattern
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
java-design-pattern
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0fe4d21a
编写于
12月 20, 2019
作者:
门心叼龙
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
code perfect
上级
6d8b6bed
变更
11
显示空白变更内容
内联
并排
Showing
11 changed file
with
82 addition
and
24 deletion
+82
-24
.idea/vcs.xml
.idea/vcs.xml
+6
-0
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/Client.java
...va/com/mxdl/desigin/pattern/behavior/mediator/Client.java
+3
-0
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/ConcreateMediator.java
.../desigin/pattern/behavior/mediator/ConcreateMediator.java
+7
-2
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/contract/IColleague.java
...esigin/pattern/behavior/mediator/contract/IColleague.java
+3
-3
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/contract/IMediator.java
...desigin/pattern/behavior/mediator/contract/IMediator.java
+14
-0
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/entity/ConcreateColleagueA.java
...pattern/behavior/mediator/entity/ConcreateColleagueA.java
+7
-4
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/entity/ConcreateColleagueB.java
...pattern/behavior/mediator/entity/ConcreateColleagueB.java
+7
-4
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/mediator.puml
.../com/mxdl/desigin/pattern/behavior/mediator/mediator.puml
+15
-0
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/note.txt
.../java/com/mxdl/desigin/pattern/behavior/mediator/note.txt
+4
-0
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/vistor/note.txt
...in/java/com/mxdl/desigin/pattern/behavior/vistor/note.txt
+4
-0
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/vistor/vistor.puml
...java/com/mxdl/desigin/pattern/behavior/vistor/vistor.puml
+12
-11
未找到文件。
.idea/vcs.xml
0 → 100644
浏览文件 @
0fe4d21a
<?xml version="1.0" encoding="UTF-8"?>
<project
version=
"4"
>
<component
name=
"VcsDirectoryMappings"
>
<mapping
directory=
"$PROJECT_DIR$"
vcs=
"Git"
/>
</component>
</project>
\ No newline at end of file
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/Client.java
浏览文件 @
0fe4d21a
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: <Client><br>
* Author: mxdl<br>
...
...
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/ConcreateMediator.java
浏览文件 @
0fe4d21a
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: <ConcreateMediator><br>
* Author: mxdl<br>
...
...
@@ -7,7 +12,7 @@ package com.mxdl.desigin.pattern.behavior.mediator;
* Version: V1.0.0<br>
* Update: <br>
*/
public
class
ConcreateMediator
implements
Mediator
{
public
class
ConcreateMediator
implements
I
Mediator
{
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
,
I
Colleague
colleague
)
{
System
.
out
.
println
(
"中介开始转发消息"
);
if
(
colleague
==
mColleagueA
){
//如果是A发来了消息,则把这个消息转发给B
...
...
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/Colleague.java
→
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/
contract/I
Colleague.java
浏览文件 @
0fe4d21a
package
com.mxdl.desigin.pattern.behavior.mediator
;
package
com.mxdl.desigin.pattern.behavior.mediator
.contract
;
/**
* Description: <Colleague><br>
* Description: <
I
Colleague><br>
* Author: mxdl<br>
* Date: 2019/12/20<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public
interface
Colleague
{
public
interface
I
Colleague
{
void
sendMessage
(
String
message
);
void
notifyMessage
(
String
messaege
);
}
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/Mediator.java
→
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/
contract/I
Mediator.java
浏览文件 @
0fe4d21a
package
com.mxdl.desigin.pattern.behavior.mediator
;
package
com.mxdl.desigin.pattern.behavior.mediator.contract
;
import
com.mxdl.desigin.pattern.behavior.mediator.contract.IColleague
;
/**
* Description: <Mediator><br>
* Description: <
I
Mediator><br>
* Author: mxdl<br>
* Date: 2019/12/20<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public
interface
Mediator
{
void
sendMessage
(
String
msg
,
Colleague
colleague
);
public
interface
I
Mediator
{
void
sendMessage
(
String
msg
,
I
Colleague
colleague
);
}
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/ConcreateColleagueA.java
→
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/
entity/
ConcreateColleagueA.java
浏览文件 @
0fe4d21a
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: <ConcreateColleagueA><br>
...
...
@@ -7,10 +10,10 @@ package com.mxdl.desigin.pattern.behavior.mediator;
* Version: V1.0.0<br>
* Update: <br>
*/
public
class
ConcreateColleagueA
implements
Colleague
{
Mediator
mMediator
;
public
class
ConcreateColleagueA
implements
I
Colleague
{
I
Mediator
mMediator
;
public
ConcreateColleagueA
(
Mediator
mediator
)
{
public
ConcreateColleagueA
(
I
Mediator
mediator
)
{
mMediator
=
mediator
;
}
...
...
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/ConcreateColleagueB.java
→
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/
entity/
ConcreateColleagueB.java
浏览文件 @
0fe4d21a
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: <ConcreateColleagueA><br>
...
...
@@ -7,10 +10,10 @@ package com.mxdl.desigin.pattern.behavior.mediator;
* Version: V1.0.0<br>
* Update: <br>
*/
public
class
ConcreateColleagueB
implements
Colleague
{
Mediator
mMediator
;
public
class
ConcreateColleagueB
implements
I
Colleague
{
I
Mediator
mMediator
;
public
ConcreateColleagueB
(
Mediator
mediator
)
{
public
ConcreateColleagueB
(
I
Mediator
mediator
)
{
mMediator
=
mediator
;
}
...
...
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/mediator.puml
0 → 100644
浏览文件 @
0fe4d21a
@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
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/mediator/note.txt
0 → 100644
浏览文件 @
0fe4d21a
特点:把多个对象之间多对多的网状关系办成了一对多的星状关系,各个对象通过中介者进行通信
优点:关系对象之间的耦合度降低了
缺点:中介类的责任过于重大,一旦它出错了,整个系统都处于一种危险境地
举例:联合国就是一个中介,用来调停各国之间的矛盾和冲突,维护世界和平
\ No newline at end of file
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/vistor/note.txt
0 → 100644
浏览文件 @
0fe4d21a
特点:访问者模式适用于数据结构比较稳当的数据,它把数据结构和基于数据结构的操作彻底分开
优点:使得操作数据的操作可以自由的演化
缺点:但是如果新增了数据结构处理就变得麻烦
距离:男人和女人在不同状态下的不同体现
\ No newline at end of file
lib_design_pattern/src/main/java/com/mxdl/desigin/pattern/behavior/vistor/vistor.puml
浏览文件 @
0fe4d21a
...
...
@@ -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
righ
t:被访问的实体对象
note
lef
t:被访问的实体对象
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
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录