forked from andrei-punko/java-interview-coding
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDriverExam.java
More file actions
83 lines (70 loc) · 2.01 KB
/
Copy pathDriverExam.java
File metadata and controls
83 lines (70 loc) · 2.01 KB
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
package by.andd3dfx.common;
/**
* <pre>
* Implement the executeExercise() method by doing the following:
* - Call exercise.start() at the start of the method.
* - Call exercise.execute() if start() does not fail.
* - If start() or execute() fail, an exception will be thrown. If that is the case,
* then call exercise.markNegativePoints() (the exception should not propagate).
* - Call exercise.end() at the end in any case.
*
* public class DriverExam {
* public static void executeExercise(IExercise exercise) {
* throw new UnsupportedOperationException("Waiting to be implemented.");
* }
*
* public static void main(String[] args) {
* DriverExam.executeExercise(new Exercise());
* }
* }
*
* class Exercise implements IExercise {
* public void start() { System.out.println("Start"); }
* public void execute() { System.out.println("Execute"); }
* public void markNegativePoints() { System.out.println("MarkNegativePoints"); }
* public void end() { System.out.println("End"); }
* }
*
* interface IExercise {
* void start() throws Exception;
* void execute();
* void markNegativePoints();
* void end();
* }
* </pre>
*/
public class DriverExam {
public static void executeExercise(IExercise exercise) {
try {
exercise.start();
exercise.execute();
} catch (Exception e) {
exercise.markNegativePoints();
} finally {
exercise.end();
}
}
public static void main(String[] args) {
DriverExam.executeExercise(new Exercise());
}
}
class Exercise implements IExercise {
public void start() {
System.out.println("Start");
}
public void execute() {
System.out.println("Execute");
}
public void markNegativePoints() {
System.out.println("MarkNegativePoints");
}
public void end() {
System.out.println("End");
}
}
interface IExercise {
void start() throws Exception;
void execute();
void markNegativePoints();
void end();
}