Skip to content

Commit d430d8e

Browse files
The implementation of the design pattern "Decorator"
1 parent d0b0749 commit d430d8e

File tree

74 files changed

+198
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+198
-0
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package ua.kay.patterns.decorator;
2+
3+
public interface Developer {
4+
public String makeJob();
5+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package ua.kay.patterns.decorator;
2+
3+
public class DeveloperDecorator implements Developer {
4+
Developer developer;
5+
6+
public DeveloperDecorator(Developer developer) {
7+
this.developer = developer;
8+
}
9+
10+
@Override
11+
public String makeJob() {
12+
return developer.makeJob();
13+
}
14+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package ua.kay.patterns.decorator;
2+
3+
public class JavaDeveloper implements Developer {
4+
@Override
5+
public String makeJob() {
6+
return "Write Java code. ";
7+
}
8+
}
Lines changed: 12 additions & 0 deletions
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package ua.kay.patterns.decorator;
2+
3+
public class SeniorJavaDeveloper extends DeveloperDecorator {
4+
public SeniorJavaDeveloper(Developer developer) {
5+
super(developer);
6+
}
7+
8+
public String makeCodeReview() {
9+
return "Make code review. ";
10+
}
11+
12+
@Override
13+
public String makeJob() {
14+
return super.makeJob() + makeCodeReview();
15+
}
16+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package ua.kay.patterns.decorator;
2+
3+
public class Task {
4+
public static void main(String[] args) {
5+
Developer developer = new TeamLeadJavaDeveloper(new SeniorJavaDeveloper(new JavaDeveloper()));
6+
System.out.println(developer.makeJob());
7+
}
8+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package ua.kay.patterns.decorator;
2+
3+
public class TeamLeadJavaDeveloper extends DeveloperDecorator {
4+
public TeamLeadJavaDeveloper(Developer developer) {
5+
super(developer);
6+
}
7+
8+
public String sendWeekReport(){
9+
return "Send week report to client.";
10+
}
11+
12+
@Override
13+
public String makeJob() {
14+
return super.makeJob()+sendWeekReport();
15+
}
16+
}
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)