Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Snowleopard_wu
Java
提交
5d790266
J
Java
项目概览
Snowleopard_wu
/
Java
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
Java
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
5d790266
编写于
11月 03, 2019
作者:
A
ali4j
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
adds proxy design pattern.
上级
6c8151f6
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
102 addition
and
0 deletion
+102
-0
src/main/java/com/designpatterns/structural/proxy/Citizen.java
...ain/java/com/designpatterns/structural/proxy/Citizen.java
+11
-0
src/main/java/com/designpatterns/structural/proxy/president/President.java
.../designpatterns/structural/proxy/president/President.java
+27
-0
src/main/java/com/designpatterns/structural/proxy/president/PresidentSecretary.java
...tterns/structural/proxy/president/PresidentSecretary.java
+25
-0
src/test/java/com/designpatterns/structural/proxy/Citizen.java
...est/java/com/designpatterns/structural/proxy/Citizen.java
+39
-0
未找到文件。
src/main/java/com/designpatterns/structural/proxy/Citizen.java
0 → 100644
浏览文件 @
5d790266
package
com.designpatterns.structural.proxy
;
import
com.designpatterns.structural.proxy.president.PresidentSecretary
;
public
class
Citizen
{
public
static
void
main
(
String
[]
args
)
{
PresidentSecretary
presidentSecretary
=
new
PresidentSecretary
();
presidentSecretary
.
leaveValidMessageForPresident
(
"Hello president."
);
}
}
src/main/java/com/designpatterns/structural/proxy/president/President.java
0 → 100644
浏览文件 @
5d790266
package
com.designpatterns.structural.proxy.president
;
import
com.designpatterns.creational.singleton.Singleton
;
public
class
President
{
private
volatile
static
President
instance
=
null
;
private
President
()
{}
static
President
getInstance
()
{
if
(
instance
==
null
)
{
synchronized
(
Singleton
.
class
)
{
if
(
instance
==
null
)
{
instance
=
new
President
();
}
}
}
return
instance
;
}
void
talkToThePresident
(
String
message
){
System
.
out
.
println
(
"I, the President, have received this message:"
+
message
);
}
}
src/main/java/com/designpatterns/structural/proxy/president/PresidentSecretary.java
0 → 100644
浏览文件 @
5d790266
package
com.designpatterns.structural.proxy.president
;
public
class
PresidentSecretary
{
private
President
president
;
public
PresidentSecretary
()
{
this
.
president
=
President
.
getInstance
();
}
public
void
leaveValidMessageForPresident
(
String
message
){
if
(!
isMessageValid
(
message
))
throw
new
RuntimeException
(
"invalid message"
);
System
.
out
.
println
(
"message is being sent to the President..."
);
president
.
talkToThePresident
(
message
);
System
.
out
.
println
(
"message is received by the President."
);
}
private
boolean
isMessageValid
(
String
message
)
{
return
message
!=
null
&&
!
message
.
isEmpty
()
&&
message
.
length
()
>=
10
&&
message
.
length
()
<=
100
;
}
}
src/test/java/com/designpatterns/structural/proxy/Citizen.java
0 → 100644
浏览文件 @
5d790266
package
com.designpatterns.structural.proxy
;
import
com.designpatterns.structural.proxy.president.PresidentSecretary
;
import
org.junit.jupiter.api.Assertions
;
import
org.junit.jupiter.api.Test
;
public
class
Citizen
{
private
PresidentSecretary
presidentSecretary
=
new
PresidentSecretary
();
@Test
public
void
talkToPresident_secretaryShouldRejectTooShortMessage
()
{
String
message
=
"Hi there."
;
Assertions
.
assertThrows
(
RuntimeException
.
class
,
()
->
{
presidentSecretary
.
leaveValidMessageForPresident
(
message
);
});
}
@Test
public
void
talkToPresident_secretaryShouldRejectTooLongMessage
()
{
String
message
=
"Hi there. this is a message about some personal issue which I have decided to share with Mr.President."
;
Assertions
.
assertThrows
(
RuntimeException
.
class
,
()
->
{
presidentSecretary
.
leaveValidMessageForPresident
(
message
);
});
}
@Test
public
void
talkToPresident_secretaryShouldAcceptTheMessage
()
{
String
message
=
"Hello Mr.President"
;
presidentSecretary
.
leaveValidMessageForPresident
(
message
);
Assertions
.
assertTrue
(
true
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录