File tree Expand file tree Collapse file tree
Basics/Design Pattern contd/strategy Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ package design .pattern .stratergy ;
2+
3+ public abstract class Duck {
4+
5+ IFlyBehaviour flyBehaviour ;
6+
7+ IQuackBehaviour quackBehaviour ;
8+
9+ public abstract void display ();
10+
11+ public void performFly (){
12+ flyBehaviour .fly ();
13+ }
14+
15+ public void performQuack (){
16+ quackBehaviour .quack ();
17+ }
18+
19+ public void swim (){
20+ System .out .println ("All ducks float even Decoy" );
21+ }
22+
23+ public void setFlyBehaviour (IFlyBehaviour flyBehaviour ) {
24+ this .flyBehaviour = flyBehaviour ;
25+ }
26+
27+ public void setQuackBehaviour (IQuackBehaviour quackBehaviour ) {
28+ this .quackBehaviour = quackBehaviour ;
29+ }
30+ }
Original file line number Diff line number Diff line change 1+ package design .pattern .stratergy ;
2+
3+ public class FlyNoWay implements IFlyBehaviour {
4+
5+ @ Override
6+ public void fly () {
7+ System .out .println ("I can't fly" );
8+ }
9+ }
10+
11+
Original file line number Diff line number Diff line change 1+ package design .pattern .stratergy ;
2+
3+ public class FlyRocketPower implements IFlyBehaviour {
4+
5+ @ Override
6+ public void fly () {
7+ System .out .println ("I am flying with a rocket" );
8+ }
9+ }
10+
11+
12+
Original file line number Diff line number Diff line change 1+ package design .pattern .stratergy ;
2+
3+ public class FlyWithWings implements IFlyBehaviour {
4+
5+ @ Override
6+ public void fly () {
7+ System .out .println ("I am flying with wings" );
8+ }
9+ }
Original file line number Diff line number Diff line change 1+ package design .pattern .stratergy ;
2+
3+ public interface IFlyBehaviour {
4+
5+ public void fly ();
6+ }
7+
8+
Original file line number Diff line number Diff line change 1+ package design .pattern .stratergy ;
2+
3+ public interface IQuackBehaviour {
4+
5+ public void quack ();
6+ }
7+
8+
Original file line number Diff line number Diff line change 1+
2+ package design .pattern .stratergy ;
3+
4+ public class ModelDuck extends Duck {
5+
6+ public ModelDuck () {
7+ quackBehaviour = new Quack ();
8+ flyBehaviour = new FlyNoWay ();
9+ }
10+
11+ @ Override
12+ public void display () {
13+ System .out .println ("I am a model Duck" );
14+ }
15+ }
Original file line number Diff line number Diff line change 1+ package design .pattern .stratergy ;
2+
3+ public class ModelQuack implements IQuackBehaviour {
4+
5+ @ Override
6+ public void quack () {
7+ System .out .println ("Quack Model duck" );
8+ }
9+ }
Original file line number Diff line number Diff line change 1+ package design .pattern .stratergy ;
2+
3+ public class MollardDuck extends Duck {
4+
5+ public MollardDuck () {
6+ quackBehaviour = new Quack ();
7+ flyBehaviour = new FlyWithWings ();
8+ }
9+
10+ @ Override
11+ public void display () {
12+ System .out .println ("I am a real Mollard Duck." );
13+ }
14+ }
Original file line number Diff line number Diff line change 1+ package design .pattern .stratergy ;
2+
3+ public class Quack implements IQuackBehaviour {
4+
5+ @ Override
6+ public void quack () {
7+ System .out .println ("Quack..Quack..." );
8+ }
9+ }
10+
11+
You can’t perform that action at this time.
0 commit comments