Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
门心叼龙
itstack-demo-design
提交
01abf0c9
I
itstack-demo-design
项目概览
门心叼龙
/
itstack-demo-design
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
itstack-demo-design
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
01abf0c9
编写于
5月 28, 2020
作者:
小傅哥
⛹
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
小傅哥 | 重学 Java 设计模式:实战原型模式
上级
7a927beb
变更
16
隐藏空白更改
内联
并排
Showing
16 changed file
with
498 addition
and
2 deletion
+498
-2
.gitignore
.gitignore
+3
-0
README.md
README.md
+7
-2
itstack-demo-desgin-4-01/pom.xml
itstack-demo-desgin-4-01/pom.xml
+15
-0
itstack-demo-desgin-4-01/src/main/java/org/itstack/demo/design/QuestionBankController.java
.../java/org/itstack/demo/design/QuestionBankController.java
+82
-0
itstack-demo-desgin-4-01/src/test/java/org/itstack/demo/desgin/test/ApiTest.java
...1/src/test/java/org/itstack/demo/desgin/test/ApiTest.java
+16
-0
itstack-demo-design-4-00/pom.xml
itstack-demo-design-4-00/pom.xml
+15
-0
itstack-demo-design-4-00/src/main/java/org/itstack/demo/design/AnswerQuestion.java
...src/main/java/org/itstack/demo/design/AnswerQuestion.java
+34
-0
itstack-demo-design-4-00/src/main/java/org/itstack/demo/design/ChoiceQuestion.java
...src/main/java/org/itstack/demo/design/ChoiceQuestion.java
+46
-0
itstack-demo-design-4-00/src/test/java/org/itstack/demo/design/test/ApiTest.java
...0/src/test/java/org/itstack/demo/design/test/ApiTest.java
+29
-0
itstack-demo-design-4-02/pom.xml
itstack-demo-design-4-02/pom.xml
+23
-0
itstack-demo-design-4-02/src/main/java/org/itstack/demo/design/QuestionBank.java
...2/src/main/java/org/itstack/demo/design/QuestionBank.java
+82
-0
itstack-demo-design-4-02/src/main/java/org/itstack/demo/design/QuestionBankController.java
.../java/org/itstack/demo/design/QuestionBankController.java
+61
-0
itstack-demo-design-4-02/src/main/java/org/itstack/demo/design/util/Topic.java
...-02/src/main/java/org/itstack/demo/design/util/Topic.java
+36
-0
itstack-demo-design-4-02/src/main/java/org/itstack/demo/design/util/TopicRandomUtil.java
...in/java/org/itstack/demo/design/util/TopicRandomUtil.java
+30
-0
itstack-demo-design-4-02/src/test/java/org/itstack/demo/desgin/test/ApiTest.java
...2/src/test/java/org/itstack/demo/desgin/test/ApiTest.java
+16
-0
pom.xml
pom.xml
+3
-0
未找到文件。
.gitignore
浏览文件 @
01abf0c9
...
...
@@ -6,3 +6,6 @@
/itstack-demo-design-3-01/itstack-demo-design-3-01.iml
/itstack-demo-design-3-02/itstack-demo-design-3-02.iml
/itstack-demo-design-3-00/itstack-demo-design-3-00.iml
/itstack-demo-desgin-4-01/itstack-demo-desgin-4-01.iml
/itstack-demo-design-4-02/itstack-demo-design-4-02.iml
/itstack-demo-design-4-00/itstack-demo-design-4-00.iml
README.md
浏览文件 @
01abf0c9
# itstack-demo-design
设计模式案例
# 重学 Java 设计模式
-
[
`重学 Java 设计模式:实战工厂方法模式`
](
https://bugstack.cn/itstack-demo-design/2020/05/20/%E9%87%8D%E5%AD%A6Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E5%AE%9E%E6%88%98%E5%B7%A5%E5%8E%82%E6%96%B9%E6%B3%95%E6%A8%A1%E5%BC%8F.html
)
-
[
`重学 Java 设计模式:实战抽象工厂模式`
](
https://bugstack.cn/itstack-demo-design/2020/05/24/%E9%87%8D%E5%AD%A6Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E6%8A%BD%E8%B1%A1%E5%B7%A5%E5%8E%82%E6%A8%A1%E5%BC%8F.html
)
-
[
`重学 Java 设计模式:实战建造者模式`
](
https://bugstack.cn/itstack-demo-design/2020/05/26/%E9%87%8D%E5%AD%A6Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E5%AE%9E%E6%88%98%E5%BB%BA%E9%80%A0%E8%80%85%E6%A8%A1%E5%BC%8F.html
)
-
[
`重学 Java 设计模式:实战原型模式`
](
https://bugstack.cn/itstack-demo-design/2020/05/28/%E9%87%8D%E5%AD%A6-Java-%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E5%AE%9E%E6%88%98%E5%8E%9F%E5%9E%8B%E6%A8%A1%E5%BC%8F.html
)
itstack-demo-desgin-4-01/pom.xml
0 → 100644
浏览文件 @
01abf0c9
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
itstack-demo-design
</artifactId>
<groupId>
org.itstack
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
itstack-demo-desgin-4-01
</artifactId>
</project>
\ No newline at end of file
itstack-demo-desgin-4-01/src/main/java/org/itstack/demo/design/QuestionBankController.java
0 → 100755
浏览文件 @
01abf0c9
package
org.itstack.demo.design
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
public
class
QuestionBankController
{
public
String
createPaper
(
String
candidate
,
String
number
)
{
List
<
ChoiceQuestion
>
choiceQuestionList
=
new
ArrayList
<
ChoiceQuestion
>();
List
<
AnswerQuestion
>
answerQuestionList
=
new
ArrayList
<
AnswerQuestion
>();
Map
<
String
,
String
>
map01
=
new
HashMap
<
String
,
String
>();
map01
.
put
(
"A"
,
"JAVA2 EE"
);
map01
.
put
(
"B"
,
"JAVA2 Card"
);
map01
.
put
(
"C"
,
"JAVA2 ME"
);
map01
.
put
(
"D"
,
"JAVA2 HE"
);
map01
.
put
(
"E"
,
"JAVA2 SE"
);
Map
<
String
,
String
>
map02
=
new
HashMap
<
String
,
String
>();
map02
.
put
(
"A"
,
"JAVA程序的main方法必须写在类里面"
);
map02
.
put
(
"B"
,
"JAVA程序中可以有多个main方法"
);
map02
.
put
(
"C"
,
"JAVA程序中类名必须与文件名一样"
);
map02
.
put
(
"D"
,
"JAVA程序的main方法中如果只有一条语句,可以不用{}(大括号)括起来"
);
Map
<
String
,
String
>
map03
=
new
HashMap
<
String
,
String
>();
map03
.
put
(
"A"
,
"变量由字母、下划线、数字、$符号随意组成;"
);
map03
.
put
(
"B"
,
"变量不能以数字作为开头;"
);
map03
.
put
(
"C"
,
"A和a在java中是同一个变量;"
);
map03
.
put
(
"D"
,
"不同类型的变量,可以起相同的名字;"
);
Map
<
String
,
String
>
map04
=
new
HashMap
<
String
,
String
>();
map04
.
put
(
"A"
,
"STRING"
);
map04
.
put
(
"B"
,
"x3x;"
);
map04
.
put
(
"C"
,
"void"
);
map04
.
put
(
"D"
,
"de$f"
);
Map
<
String
,
String
>
map05
=
new
HashMap
<
String
,
String
>();
map05
.
put
(
"A"
,
"31"
);
map05
.
put
(
"B"
,
"0"
);
map05
.
put
(
"C"
,
"1"
);
map05
.
put
(
"D"
,
"2"
);
choiceQuestionList
.
add
(
new
ChoiceQuestion
(
"JAVA所定义的版本中不包括"
,
map01
,
"D"
));
choiceQuestionList
.
add
(
new
ChoiceQuestion
(
"下列说法正确的是"
,
map02
,
"A"
));
choiceQuestionList
.
add
(
new
ChoiceQuestion
(
"变量命名规范说法正确的是"
,
map03
,
"B"
));
choiceQuestionList
.
add
(
new
ChoiceQuestion
(
"以下()不是合法的标识符"
,
map04
,
"C"
));
choiceQuestionList
.
add
(
new
ChoiceQuestion
(
"表达式(11+3*8)/4%3的值是"
,
map05
,
"D"
));
answerQuestionList
.
add
(
new
AnswerQuestion
(
"小红马和小黑马生的小马几条腿"
,
"4条腿"
));
answerQuestionList
.
add
(
new
AnswerQuestion
(
"铁棒打头疼还是木棒打头疼"
,
"头最疼"
));
answerQuestionList
.
add
(
new
AnswerQuestion
(
"什么床不能睡觉"
,
"牙床"
));
answerQuestionList
.
add
(
new
AnswerQuestion
(
"为什么好马不吃回头草"
,
"后面的草没了"
));
// 输出结果
StringBuilder
detail
=
new
StringBuilder
(
"考生:"
+
candidate
+
"\r\n"
+
"考号:"
+
number
+
"\r\n"
+
"--------------------------------------------\r\n"
+
"一、选择题"
+
"\r\n\n"
);
for
(
int
idx
=
0
;
idx
<
choiceQuestionList
.
size
();
idx
++)
{
detail
.
append
(
"第"
).
append
(
idx
+
1
).
append
(
"题:"
).
append
(
choiceQuestionList
.
get
(
idx
).
getName
()).
append
(
"\r\n"
);
Map
<
String
,
String
>
option
=
choiceQuestionList
.
get
(
idx
).
getOption
();
for
(
String
key
:
option
.
keySet
())
{
detail
.
append
(
key
).
append
(
":"
).
append
(
option
.
get
(
key
)).
append
(
"\r\n"
);
;
}
detail
.
append
(
"答案:"
).
append
(
choiceQuestionList
.
get
(
idx
).
getKey
()).
append
(
"\r\n\n"
);
}
detail
.
append
(
"二、问答题"
+
"\r\n\n"
);
for
(
int
idx
=
0
;
idx
<
answerQuestionList
.
size
();
idx
++)
{
detail
.
append
(
"第"
).
append
(
idx
+
1
).
append
(
"题:"
).
append
(
answerQuestionList
.
get
(
idx
).
getName
()).
append
(
"\r\n"
);
detail
.
append
(
"答案:"
).
append
(
answerQuestionList
.
get
(
idx
).
getKey
()).
append
(
"\r\n\n"
);
}
return
detail
.
toString
();
}
}
itstack-demo-desgin-4-01/src/test/java/org/itstack/demo/desgin/test/ApiTest.java
0 → 100755
浏览文件 @
01abf0c9
package
org.itstack.demo.desgin.test
;
import
org.itstack.demo.design.QuestionBankController
;
import
org.junit.Test
;
public
class
ApiTest
{
@Test
public
void
test_QuestionBankController
()
{
QuestionBankController
questionBankController
=
new
QuestionBankController
();
System
.
out
.
println
(
questionBankController
.
createPaper
(
"花花"
,
"1000001921032"
));
System
.
out
.
println
(
questionBankController
.
createPaper
(
"豆豆"
,
"1000001921051"
));
System
.
out
.
println
(
questionBankController
.
createPaper
(
"大宝"
,
"1000001921987"
));
}
}
itstack-demo-design-4-00/pom.xml
0 → 100644
浏览文件 @
01abf0c9
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
itstack-demo-design
</artifactId>
<groupId>
org.itstack
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
itstack-demo-design-4-00
</artifactId>
</project>
\ No newline at end of file
itstack-demo-design-4-00/src/main/java/org/itstack/demo/design/AnswerQuestion.java
0 → 100755
浏览文件 @
01abf0c9
package
org.itstack.demo.design
;
/**
* 解答题
*/
public
class
AnswerQuestion
{
private
String
name
;
// 问题
private
String
key
;
// 答案
public
AnswerQuestion
()
{
}
public
AnswerQuestion
(
String
name
,
String
key
)
{
this
.
name
=
name
;
this
.
key
=
key
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getKey
()
{
return
key
;
}
public
void
setKey
(
String
key
)
{
this
.
key
=
key
;
}
}
itstack-demo-design-4-00/src/main/java/org/itstack/demo/design/ChoiceQuestion.java
0 → 100755
浏览文件 @
01abf0c9
package
org.itstack.demo.design
;
import
java.util.Map
;
/**
* 单选题
*/
public
class
ChoiceQuestion
{
private
String
name
;
// 题目
private
Map
<
String
,
String
>
option
;
// 选项;A、B、C、D
private
String
key
;
// 答案;B
public
ChoiceQuestion
()
{
}
public
ChoiceQuestion
(
String
name
,
Map
<
String
,
String
>
option
,
String
key
)
{
this
.
name
=
name
;
this
.
option
=
option
;
this
.
key
=
key
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
Map
<
String
,
String
>
getOption
()
{
return
option
;
}
public
void
setOption
(
Map
<
String
,
String
>
option
)
{
this
.
option
=
option
;
}
public
String
getKey
()
{
return
key
;
}
public
void
setKey
(
String
key
)
{
this
.
key
=
key
;
}
}
itstack-demo-design-4-00/src/test/java/org/itstack/demo/design/test/ApiTest.java
0 → 100755
浏览文件 @
01abf0c9
package
org.itstack.demo.design.test
;
import
com.alibaba.fastjson.JSON
;
import
org.junit.Test
;
import
java.util.ArrayList
;
public
class
ApiTest
{
@Test
public
void
test_clone
()
throws
CloneNotSupportedException
{
ArrayList
<
String
>
l01
=
new
ArrayList
<
String
>();
l01
.
add
(
"xxx"
);
l01
.
add
(
"yyy"
);
ArrayList
<
String
>
l02
=
(
ArrayList
<
String
>)
l01
.
clone
();
l02
.
add
(
"zzz"
);
System
.
out
.
println
(
JSON
.
toJSONString
(
l01
));
System
.
out
.
println
(
JSON
.
toJSONString
(
l02
));
l01
.
remove
(
"xxx"
);
System
.
out
.
println
(
JSON
.
toJSONString
(
l01
));
System
.
out
.
println
(
JSON
.
toJSONString
(
l02
));
}
}
itstack-demo-design-4-02/pom.xml
0 → 100644
浏览文件 @
01abf0c9
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
itstack-demo-design
</artifactId>
<groupId>
org.itstack
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
itstack-demo-design-4-02
</artifactId>
<dependencies>
<dependency>
<groupId>
org.itstack
</groupId>
<artifactId>
itstack-demo-design-4-00
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
</project>
\ No newline at end of file
itstack-demo-design-4-02/src/main/java/org/itstack/demo/design/QuestionBank.java
0 → 100755
浏览文件 @
01abf0c9
package
org.itstack.demo.design
;
import
org.itstack.demo.design.util.Topic
;
import
org.itstack.demo.design.util.TopicRandomUtil
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Map
;
public
class
QuestionBank
implements
Cloneable
{
private
String
candidate
;
// 考生
private
String
number
;
// 考号
private
ArrayList
<
ChoiceQuestion
>
choiceQuestionList
=
new
ArrayList
<
ChoiceQuestion
>();
private
ArrayList
<
AnswerQuestion
>
answerQuestionList
=
new
ArrayList
<
AnswerQuestion
>();
public
QuestionBank
append
(
ChoiceQuestion
choiceQuestion
)
{
choiceQuestionList
.
add
(
choiceQuestion
);
return
this
;
}
public
QuestionBank
append
(
AnswerQuestion
answerQuestion
)
{
answerQuestionList
.
add
(
answerQuestion
);
return
this
;
}
@Override
public
Object
clone
()
throws
CloneNotSupportedException
{
QuestionBank
questionBank
=
(
QuestionBank
)
super
.
clone
();
questionBank
.
choiceQuestionList
=
(
ArrayList
<
ChoiceQuestion
>)
choiceQuestionList
.
clone
();
questionBank
.
answerQuestionList
=
(
ArrayList
<
AnswerQuestion
>)
answerQuestionList
.
clone
();
// 题目乱序
Collections
.
shuffle
(
questionBank
.
choiceQuestionList
);
Collections
.
shuffle
(
questionBank
.
answerQuestionList
);
// 答案乱序
ArrayList
<
ChoiceQuestion
>
choiceQuestionList
=
questionBank
.
choiceQuestionList
;
for
(
ChoiceQuestion
question
:
choiceQuestionList
)
{
Topic
random
=
TopicRandomUtil
.
random
(
question
.
getOption
(),
question
.
getKey
());
question
.
setOption
(
random
.
getOption
());
question
.
setKey
(
random
.
getKey
());
}
return
questionBank
;
}
public
void
setCandidate
(
String
candidate
)
{
this
.
candidate
=
candidate
;
}
public
void
setNumber
(
String
number
)
{
this
.
number
=
number
;
}
@Override
public
String
toString
()
{
StringBuilder
detail
=
new
StringBuilder
(
"考生:"
+
candidate
+
"\r\n"
+
"考号:"
+
number
+
"\r\n"
+
"--------------------------------------------\r\n"
+
"一、选择题"
+
"\r\n\n"
);
for
(
int
idx
=
0
;
idx
<
choiceQuestionList
.
size
();
idx
++)
{
detail
.
append
(
"第"
).
append
(
idx
+
1
).
append
(
"题:"
).
append
(
choiceQuestionList
.
get
(
idx
).
getName
()).
append
(
"\r\n"
);
Map
<
String
,
String
>
option
=
choiceQuestionList
.
get
(
idx
).
getOption
();
for
(
String
key
:
option
.
keySet
())
{
detail
.
append
(
key
).
append
(
":"
).
append
(
option
.
get
(
key
)).
append
(
"\r\n"
);;
}
detail
.
append
(
"答案:"
).
append
(
choiceQuestionList
.
get
(
idx
).
getKey
()).
append
(
"\r\n\n"
);
}
detail
.
append
(
"二、问答题"
+
"\r\n\n"
);
for
(
int
idx
=
0
;
idx
<
answerQuestionList
.
size
();
idx
++)
{
detail
.
append
(
"第"
).
append
(
idx
+
1
).
append
(
"题:"
).
append
(
answerQuestionList
.
get
(
idx
).
getName
()).
append
(
"\r\n"
);
detail
.
append
(
"答案:"
).
append
(
answerQuestionList
.
get
(
idx
).
getKey
()).
append
(
"\r\n\n"
);
}
return
detail
.
toString
();
}
}
itstack-demo-design-4-02/src/main/java/org/itstack/demo/design/QuestionBankController.java
0 → 100755
浏览文件 @
01abf0c9
package
org.itstack.demo.design
;
import
java.util.HashMap
;
import
java.util.Map
;
public
class
QuestionBankController
{
private
QuestionBank
questionBank
=
new
QuestionBank
();
public
QuestionBankController
()
{
Map
<
String
,
String
>
map01
=
new
HashMap
<
String
,
String
>();
map01
.
put
(
"A"
,
"JAVA2 EE"
);
map01
.
put
(
"B"
,
"JAVA2 Card"
);
map01
.
put
(
"C"
,
"JAVA2 ME"
);
map01
.
put
(
"D"
,
"JAVA2 HE"
);
map01
.
put
(
"E"
,
"JAVA2 SE"
);
Map
<
String
,
String
>
map02
=
new
HashMap
<
String
,
String
>();
map02
.
put
(
"A"
,
"JAVA程序的main方法必须写在类里面"
);
map02
.
put
(
"B"
,
"JAVA程序中可以有多个main方法"
);
map02
.
put
(
"C"
,
"JAVA程序中类名必须与文件名一样"
);
map02
.
put
(
"D"
,
"JAVA程序的main方法中如果只有一条语句,可以不用{}(大括号)括起来"
);
Map
<
String
,
String
>
map03
=
new
HashMap
<
String
,
String
>();
map03
.
put
(
"A"
,
"变量由字母、下划线、数字、$符号随意组成;"
);
map03
.
put
(
"B"
,
"变量不能以数字作为开头;"
);
map03
.
put
(
"C"
,
"A和a在java中是同一个变量;"
);
map03
.
put
(
"D"
,
"不同类型的变量,可以起相同的名字;"
);
Map
<
String
,
String
>
map04
=
new
HashMap
<
String
,
String
>();
map04
.
put
(
"A"
,
"STRING"
);
map04
.
put
(
"B"
,
"x3x;"
);
map04
.
put
(
"C"
,
"void"
);
map04
.
put
(
"D"
,
"de$f"
);
Map
<
String
,
String
>
map05
=
new
HashMap
<
String
,
String
>();
map05
.
put
(
"A"
,
"31"
);
map05
.
put
(
"B"
,
"0"
);
map05
.
put
(
"C"
,
"1"
);
map05
.
put
(
"D"
,
"2"
);
questionBank
.
append
(
new
ChoiceQuestion
(
"JAVA所定义的版本中不包括"
,
map01
,
"D"
))
.
append
(
new
ChoiceQuestion
(
"下列说法正确的是"
,
map02
,
"A"
))
.
append
(
new
ChoiceQuestion
(
"变量命名规范说法正确的是"
,
map03
,
"B"
))
.
append
(
new
ChoiceQuestion
(
"以下()不是合法的标识符"
,
map04
,
"C"
))
.
append
(
new
ChoiceQuestion
(
"表达式(11+3*8)/4%3的值是"
,
map05
,
"D"
))
.
append
(
new
AnswerQuestion
(
"小红马和小黑马生的小马几条腿"
,
"4条腿"
))
.
append
(
new
AnswerQuestion
(
"铁棒打头疼还是木棒打头疼"
,
"头最疼"
))
.
append
(
new
AnswerQuestion
(
"什么床不能睡觉"
,
"牙床"
))
.
append
(
new
AnswerQuestion
(
"为什么好马不吃回头草"
,
"后面的草没了"
));
}
public
String
createPaper
(
String
candidate
,
String
number
)
throws
CloneNotSupportedException
{
QuestionBank
questionBankClone
=
(
QuestionBank
)
questionBank
.
clone
();
questionBankClone
.
setCandidate
(
candidate
);
questionBankClone
.
setNumber
(
number
);
return
questionBankClone
.
toString
();
}
}
itstack-demo-design-4-02/src/main/java/org/itstack/demo/design/util/Topic.java
0 → 100755
浏览文件 @
01abf0c9
package
org.itstack.demo.design.util
;
import
java.util.Arrays
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Map
;
public
class
Topic
{
private
Map
<
String
,
String
>
option
;
// 选项;A、B、C、D
private
String
key
;
// 答案;B
public
Topic
()
{
}
public
Topic
(
Map
<
String
,
String
>
option
,
String
key
)
{
this
.
option
=
option
;
this
.
key
=
key
;
}
public
Map
<
String
,
String
>
getOption
()
{
return
option
;
}
public
void
setOption
(
Map
<
String
,
String
>
option
)
{
this
.
option
=
option
;
}
public
String
getKey
()
{
return
key
;
}
public
void
setKey
(
String
key
)
{
this
.
key
=
key
;
}
}
itstack-demo-design-4-02/src/main/java/org/itstack/demo/design/util/TopicRandomUtil.java
0 → 100755
浏览文件 @
01abf0c9
package
org.itstack.demo.design.util
;
import
java.util.*
;
public
class
TopicRandomUtil
{
/**
* 乱序Map元素,记录对应答案key
* @param option 题目
* @param key 答案
* @return Topic 乱序后 {A=c., B=d., C=a., D=b.}
*/
static
public
Topic
random
(
Map
<
String
,
String
>
option
,
String
key
)
{
Set
<
String
>
keySet
=
option
.
keySet
();
ArrayList
<
String
>
keyList
=
new
ArrayList
<
String
>(
keySet
);
Collections
.
shuffle
(
keyList
);
HashMap
<
String
,
String
>
optionNew
=
new
HashMap
<
String
,
String
>();
int
idx
=
0
;
String
keyNew
=
""
;
for
(
String
next
:
keySet
)
{
String
randomKey
=
keyList
.
get
(
idx
++);
if
(
key
.
equals
(
next
))
{
keyNew
=
randomKey
;
}
optionNew
.
put
(
randomKey
,
option
.
get
(
next
));
}
return
new
Topic
(
optionNew
,
keyNew
);
}
}
itstack-demo-design-4-02/src/test/java/org/itstack/demo/desgin/test/ApiTest.java
0 → 100755
浏览文件 @
01abf0c9
package
org.itstack.demo.desgin.test
;
import
org.itstack.demo.design.QuestionBankController
;
import
org.junit.Test
;
public
class
ApiTest
{
@Test
public
void
test_QuestionBank
()
throws
CloneNotSupportedException
{
QuestionBankController
questionBankController
=
new
QuestionBankController
();
System
.
out
.
println
(
questionBankController
.
createPaper
(
"花花"
,
"1000001921032"
));
System
.
out
.
println
(
questionBankController
.
createPaper
(
"豆豆"
,
"1000001921051"
));
System
.
out
.
println
(
questionBankController
.
createPaper
(
"大宝"
,
"1000001921987"
));
}
}
pom.xml
浏览文件 @
01abf0c9
...
...
@@ -18,6 +18,9 @@
<module>
itstack-demo-design-3-00
</module>
<module>
itstack-demo-design-3-01
</module>
<module>
itstack-demo-design-3-02
</module>
<module>
itstack-demo-design-4-00
</module>
<module>
itstack-demo-desgin-4-01
</module>
<module>
itstack-demo-design-4-02
</module>
</modules>
<dependencies>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录