Skip to content

Commit 9819ca5

Browse files
committed
Java Design Patterns
1 parent e1feea9 commit 9819ca5

5 files changed

Lines changed: 34 additions & 4 deletions

File tree

JavaPatterns/src/com/opencodez/patterns/state/Car.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,15 @@ public class Car implements GearState {
44

55
private GearState gear;
66

7+
@Override
8+
public void accelarate(int speed) {
9+
if(null == gear) {
10+
System.out.println("Car can not be accelarated as its in Neutral");
11+
} else {
12+
gear.accelarate(speed);
13+
}
14+
}
15+
716
public void setGearState(GearState sgear) {
817
gear = sgear;
918
}
@@ -21,7 +30,4 @@ public GearState getGearState() {
2130
public String toString() {
2231
return gear.toString();
2332
}
24-
25-
26-
2733
}

JavaPatterns/src/com/opencodez/patterns/state/FirstGear.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,13 @@ public String toString() {
1919
return str;
2020
}
2121

22+
@Override
23+
public void accelarate(int speed) {
24+
if(speed > 20) {
25+
System.out.println("Can not be accelarated to " + speed + " kmph in gear 1");
26+
} else {
27+
System.out.println("Car is running at " + speed + " kmph in gear 1");
28+
}
29+
}
30+
2231
}

JavaPatterns/src/com/opencodez/patterns/state/GearState.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22

33
public interface GearState {
44
public void changeGear();
5+
public void accelarate(int speed);
56
}

JavaPatterns/src/com/opencodez/patterns/state/SecondGear.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,14 @@ public int getGearNumber() {
1717
public String toString() {
1818
String str = "Car is in " + gearNumber + " gear.";
1919
return str;
20+
}
21+
22+
@Override
23+
public void accelarate(int speed) {
24+
if(speed > 40) {
25+
System.out.println("Can not be accelarated to " + speed + " in gear 2");
26+
} else {
27+
System.out.println("Car is running at " + speed + " kmph in gear 2");
28+
}
2029
}
2130
}

JavaPatterns/src/com/opencodez/patterns/state/StatePatternDemo.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,21 @@ public class StatePatternDemo {
44

55
public static void main(String[] args) {
66
Car car = new Car();
7+
8+
car.accelarate(18);
9+
710
car.setGearState(new FirstGear());
811
car.changeGear();
912

1013
System.out.println(car);
14+
car.accelarate(30);
15+
car.accelarate(18);
1116

1217
car.setGearState(new SecondGear());
1318
car.changeGear();
1419

1520
System.out.println(car);
16-
21+
car.accelarate(35);
1722
}
1823

1924
}

0 commit comments

Comments
 (0)