FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
Design-Patterns-Java/Strategy/Strategy.java at main · riyadomf/Design-Patterns-Java · GitHub
riyadomf
/
Design-Patterns-Java
Public
Notifications
You must be signed in to change notification settings
Fork
0
Star
2
Code
Issues
0
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
Design-Patterns-Java
/
Strategy
/
Strategy.java
Copy path
More file actions
More file actions
Latest commit
History
History
History
87 lines (70 loc) · 2.14 KB
Breadcrumbs
Design-Patterns-Java
/
Strategy
/
Strategy.java
Copy path
File metadata and controls
87 lines (70 loc) · 2.14 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
// All kinds of run behaviour are handled by RunBehaviour interface.
// This interface defines the signature of all run behaviours
// If we want to add new run behaviour, we just extend the RunBehaivour interface.
//
// Similarly, all kinds of kick behaviours are handled by KickBehaviour interface.
interface
RunBehaviour
{
String
performRun
();
}
interface
KickBehaviour
{
String
performKick
();
}
class
RunLikeAmateur
implements
RunBehaviour
{
public
String
performRun
(){
return
"runs like amateur"
;
}
}
class
RunLikeMbappe
implements
RunBehaviour
{
public
String
performRun
(){
return
"sprints like Mbappe"
;
}
}
class
KickLikeAmateur
implements
KickBehaviour
{
public
String
performKick
(){
return
"Kicks like amateur"
;
}
}
class
KickLikeBeckham
implements
KickBehaviour
{
public
String
performKick
(){
return
"bends like Beckham"
;
}
}
class
Player
{
private
String
name
;
private
RunBehaviour
runBehaviour
;
private
KickBehaviour
kickBehaviour
;
Player
(
String
name
,
RunBehaviour
runBehaviour
,
KickBehaviour
kickBehaviour
){
this
.
name
=
name
;
this
.
runBehaviour
=
runBehaviour
;
this
.
kickBehaviour
=
kickBehaviour
;
}
String
performRun
(){
return
runBehaviour
.
performRun
();
}
String
performKick
(){
return
kickBehaviour
.
performKick
();
}
public
void
setRunBehaviour
(
RunBehaviour
runBehaviour
){
this
.
runBehaviour
=
runBehaviour
;
}
public
void
setKickBehaviour
(
KickBehaviour
kickBehaviour
) {
this
.
kickBehaviour
=
kickBehaviour
;
}
public
String
getName
(){
return
this
.
name
;
}
@
Override
public
String
toString
() {
return
this
.
getName
() +
" "
+
this
.
performKick
() +
" and "
+
runBehaviour
.
performRun
() +
"."
;
}
}
public
class
Strategy
{
public
static
void
main
(
String
[]
args
){
Player
p1
=
new
Player
(
"Riyad"
,
new
RunLikeAmateur
(),
new
KickLikeAmateur
());
System
.
out
.
println
(
p1
);
p1
.
setRunBehaviour
(
new
RunLikeMbappe
());
p1
.
setKickBehaviour
(
new
KickLikeBeckham
());
System
.
out
.
println
(
p1
);
}
}
Back
|
FazBrowse Home
|
New Git URL