static void Main(string[] args) { Console.WriteLine("STRATEGY DESIGN PATTERN\n"); Console.WriteLine("--------"); //moves IJumpBehaviour shortJump = new ShortJump(); IJumpBehaviour longJump = new LongJump(); IKickBehaviour tornadoKick = new TornadoKick(); //create fighter Fighter sango = new Sango(tornadoKick, shortJump); sango.Display(); //fight sango.Punch(); sango.Kick(); sango.Jump(); //change behaviour dynamically(runtime) sango.SetJumpBehaviour(longJump); sango.Jump(); }
public void Strategy_pattern_test() { IJumpBehavior highjump = new HighJump(); IJumpBehavior longjump = new LongJump(); IKickBehavior tornadokick = new TornadoKick(); // Make a fighter with desired behaviors Fighter ryu = new Ryu(tornadokick, longjump); // Test behaviors string jumpText = ryu.jump(); string kickText = ryu.kick(); string punchText = ryu.punch(); Assert.AreEqual("Long Jump", jumpText); Assert.AreEqual("Tornado Kick", kickText); Assert.AreEqual("Default punch", punchText); // Change behavior dynamically (algorithms are // interchangeable) ryu.setjump(highjump); ryu.jump(); Assert.AreEqual("Long Jump", jumpText); }