Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
datax-cloud
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄营
datax-cloud
Commits
2f75acc5
Commit
2f75acc5
authored
Mar 06, 2020
by
yuwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
java设计模式
parent
1365e260
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
178 additions
and
1 deletions
+178
-1
StrategyPatternDemo.java
...ign/patterns/behavioral/strategy/StrategyPatternDemo.java
+2
-1
Cricket.java
...learning/design/patterns/behavioral/template/Cricket.java
+19
-0
Football.java
...earning/design/patterns/behavioral/template/Football.java
+19
-0
Game.java
...ax/learning/design/patterns/behavioral/template/Game.java
+23
-0
TemplatePatternDemo.java
...ign/patterns/behavioral/template/TemplatePatternDemo.java
+15
-0
Computer.java
...learning/design/patterns/behavioral/visitor/Computer.java
+19
-0
ComputerPart.java
...ning/design/patterns/behavioral/visitor/ComputerPart.java
+6
-0
ComputerPartDisplayVisitor.java
...tterns/behavioral/visitor/ComputerPartDisplayVisitor.java
+24
-0
ComputerPartVisitor.java
...sign/patterns/behavioral/visitor/ComputerPartVisitor.java
+12
-0
Keyboard.java
...learning/design/patterns/behavioral/visitor/Keyboard.java
+9
-0
Monitor.java
.../learning/design/patterns/behavioral/visitor/Monitor.java
+9
-0
Mouse.java
...ax/learning/design/patterns/behavioral/visitor/Mouse.java
+9
-0
VisitorPatternDemo.java
...esign/patterns/behavioral/visitor/VisitorPatternDemo.java
+12
-0
No files found.
datax-learning/design-patterns/src/main/java/cn/datax/learning/design/patterns/behavioral/strategy/StrategyPatternDemo.java
View file @
2f75acc5
...
...
@@ -11,6 +11,7 @@ public class StrategyPatternDemo {
System
.
out
.
println
(
"10 + 5 = "
+
context
.
executeStrategy
(
10
,
5
));
context
.
SetStrategy
(
new
OperationSubstract
());
System
.
out
.
println
(
"10 - 5 = "
+
context
.
executeStrategy
(
10
,
5
));
context
.
SetStrategy
(
new
OperationMultiply
());
System
.
out
.
println
(
"10 * 5 = "
+
context
.
executeStrategy
(
10
,
5
));
context
.
SetStrategy
(
new
OperationMultiply
());
System
.
out
.
println
(
"10 * 5 = "
+
context
.
executeStrategy
(
10
,
5
));
}
}
datax-learning/design-patterns/src/main/java/cn/datax/learning/design/patterns/behavioral/template/Cricket.java
0 → 100644
View file @
2f75acc5
package
cn
.
datax
.
learning
.
design
.
patterns
.
behavioral
.
template
;
public
class
Cricket
extends
Game
{
@Override
void
endPlay
()
{
System
.
out
.
println
(
"Cricket Game Finished!"
);
}
@Override
void
initialize
()
{
System
.
out
.
println
(
"Cricket Game Initialized! Start playing."
);
}
@Override
void
startPlay
()
{
System
.
out
.
println
(
"Cricket Game Started. Enjoy the game!"
);
}
}
datax-learning/design-patterns/src/main/java/cn/datax/learning/design/patterns/behavioral/template/Football.java
0 → 100644
View file @
2f75acc5
package
cn
.
datax
.
learning
.
design
.
patterns
.
behavioral
.
template
;
public
class
Football
extends
Game
{
@Override
void
endPlay
()
{
System
.
out
.
println
(
"Football Game Finished!"
);
}
@Override
void
initialize
()
{
System
.
out
.
println
(
"Football Game Initialized! Start playing."
);
}
@Override
void
startPlay
()
{
System
.
out
.
println
(
"Football Game Started. Enjoy the game!"
);
}
}
datax-learning/design-patterns/src/main/java/cn/datax/learning/design/patterns/behavioral/template/Game.java
0 → 100644
View file @
2f75acc5
package
cn
.
datax
.
learning
.
design
.
patterns
.
behavioral
.
template
;
public
abstract
class
Game
{
abstract
void
initialize
();
abstract
void
startPlay
();
abstract
void
endPlay
();
//模板
public
final
void
play
()
{
//初始化游戏
initialize
();
//开始游戏
startPlay
();
//结束游戏
endPlay
();
}
}
datax-learning/design-patterns/src/main/java/cn/datax/learning/design/patterns/behavioral/template/TemplatePatternDemo.java
0 → 100644
View file @
2f75acc5
package
cn
.
datax
.
learning
.
design
.
patterns
.
behavioral
.
template
;
/**
* 模板模式(Template Pattern)
*/
public
class
TemplatePatternDemo
{
public
static
void
main
(
String
[]
args
)
{
Game
game
=
new
Cricket
();
game
.
play
();
System
.
out
.
println
();
game
=
new
Football
();
game
.
play
();
}
}
datax-learning/design-patterns/src/main/java/cn/datax/learning/design/patterns/behavioral/visitor/Computer.java
0 → 100644
View file @
2f75acc5
package
cn
.
datax
.
learning
.
design
.
patterns
.
behavioral
.
visitor
;
public
class
Computer
implements
ComputerPart
{
ComputerPart
[]
parts
;
public
Computer
()
{
parts
=
new
ComputerPart
[]
{
new
Mouse
(),
new
Keyboard
(),
new
Monitor
()};
}
@Override
public
void
accept
(
ComputerPartVisitor
computerPartVisitor
)
{
for
(
int
i
=
0
;
i
<
parts
.
length
;
i
++)
{
parts
[
i
].
accept
(
computerPartVisitor
);
}
computerPartVisitor
.
visit
(
this
);
}
}
datax-learning/design-patterns/src/main/java/cn/datax/learning/design/patterns/behavioral/visitor/ComputerPart.java
0 → 100644
View file @
2f75acc5
package
cn
.
datax
.
learning
.
design
.
patterns
.
behavioral
.
visitor
;
public
interface
ComputerPart
{
public
void
accept
(
ComputerPartVisitor
computerPartVisitor
);
}
datax-learning/design-patterns/src/main/java/cn/datax/learning/design/patterns/behavioral/visitor/ComputerPartDisplayVisitor.java
0 → 100644
View file @
2f75acc5
package
cn
.
datax
.
learning
.
design
.
patterns
.
behavioral
.
visitor
;
public
class
ComputerPartDisplayVisitor
implements
ComputerPartVisitor
{
@Override
public
void
visit
(
Computer
computer
)
{
System
.
out
.
println
(
"Displaying Computer."
);
}
@Override
public
void
visit
(
Mouse
mouse
)
{
System
.
out
.
println
(
"Displaying Mouse."
);
}
@Override
public
void
visit
(
Keyboard
keyboard
)
{
System
.
out
.
println
(
"Displaying Keyboard."
);
}
@Override
public
void
visit
(
Monitor
monitor
)
{
System
.
out
.
println
(
"Displaying Monitor."
);
}
}
datax-learning/design-patterns/src/main/java/cn/datax/learning/design/patterns/behavioral/visitor/ComputerPartVisitor.java
0 → 100644
View file @
2f75acc5
package
cn
.
datax
.
learning
.
design
.
patterns
.
behavioral
.
visitor
;
public
interface
ComputerPartVisitor
{
public
void
visit
(
Computer
computer
);
public
void
visit
(
Mouse
mouse
);
public
void
visit
(
Keyboard
keyboard
);
public
void
visit
(
Monitor
monitor
);
}
datax-learning/design-patterns/src/main/java/cn/datax/learning/design/patterns/behavioral/visitor/Keyboard.java
0 → 100644
View file @
2f75acc5
package
cn
.
datax
.
learning
.
design
.
patterns
.
behavioral
.
visitor
;
public
class
Keyboard
implements
ComputerPart
{
@Override
public
void
accept
(
ComputerPartVisitor
computerPartVisitor
)
{
computerPartVisitor
.
visit
(
this
);
}
}
datax-learning/design-patterns/src/main/java/cn/datax/learning/design/patterns/behavioral/visitor/Monitor.java
0 → 100644
View file @
2f75acc5
package
cn
.
datax
.
learning
.
design
.
patterns
.
behavioral
.
visitor
;
public
class
Monitor
implements
ComputerPart
{
@Override
public
void
accept
(
ComputerPartVisitor
computerPartVisitor
)
{
computerPartVisitor
.
visit
(
this
);
}
}
datax-learning/design-patterns/src/main/java/cn/datax/learning/design/patterns/behavioral/visitor/Mouse.java
0 → 100644
View file @
2f75acc5
package
cn
.
datax
.
learning
.
design
.
patterns
.
behavioral
.
visitor
;
public
class
Mouse
implements
ComputerPart
{
@Override
public
void
accept
(
ComputerPartVisitor
computerPartVisitor
)
{
computerPartVisitor
.
visit
(
this
);
}
}
datax-learning/design-patterns/src/main/java/cn/datax/learning/design/patterns/behavioral/visitor/VisitorPatternDemo.java
0 → 100644
View file @
2f75acc5
package
cn
.
datax
.
learning
.
design
.
patterns
.
behavioral
.
visitor
;
/**
* 访问者模式(Visitor Pattern)
*/
public
class
VisitorPatternDemo
{
public
static
void
main
(
String
[]
args
)
{
ComputerPart
computer
=
new
Computer
();
computer
.
accept
(
new
ComputerPartDisplayVisitor
());
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment