File tree Expand file tree Collapse file tree
JavaPatterns/src/com/opencodez/patterns/state Expand file tree Collapse file tree Original file line number Diff line number Diff 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}
Original file line number Diff line number Diff 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}
Original file line number Diff line number Diff line change 22
33public interface GearState {
44 public void changeGear ();
5+ public void accelarate (int speed );
56}
Original file line number Diff line number Diff 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}
Original file line number Diff line number Diff 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}
You can’t perform that action at this time.
0 commit comments