Beispiel #1
0
        public Duck(IFlyBehavior flyBehavior, IQuackBehavior quackBehavior, ISwimBehavior swimBehavior)
        {
            _flyBehavior   = flyBehavior;
            _quackBehavior = quackBehavior;
            _swimBehavior  = swimBehavior;

            Console.WriteLine("I'm created!");
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            Duck duck = new MallardDuck(new FlyByWings(), new Quack());

            duck.Fly();
            duck.Swim();
            duck.Quack();

            Console.WriteLine();

            Duck duck1 = new RubberDuck(new FlyNoWay(), new Squick());

            duck1.Fly();
            duck1.Swim();
            duck1.Quack();

            Console.WriteLine();

            Duck duck2 = new DecorDuck(new FlyNoWay(), new MuteQuack());

            duck2.ChangeFlyBehavior(new RocketFly());
            duck2.Fly();
            duck2.Swim();
            duck2.Quack();

            Console.WriteLine();

            FlyByWings fly = new FlyByWings();

            IFlyBehavior fly1 = (IFlyBehavior)fly;

            SwimAndFly swimAndFly = new SwimAndFly();

            swimAndFly.Swim();
            swimAndFly.Fly();

            IFlyBehavior fly2 = (IFlyBehavior)swimAndFly;

            ISwimBehavior swim = (ISwimBehavior)swimAndFly;

            Phone phone = new Phone();

            ((IEmailSender)phone).Send();
            ((ISmsSender)phone).Send();
        }
Beispiel #3
0
 public RubberDuck(IFlyBehavior fb, IQuackBehavior qb, ISwimBehavior sb) : base(fb, qb, sb)
 {
 }
Beispiel #4
0
 public ModelDuck(IFlyBehavior fb, IQuackBehavior qb, ISwimBehavior sb) : base(fb, qb, sb)
 {
 }
Beispiel #5
0
 public Mallard(IFlyBehavior flyBehavior, ISoundBehavior soundBehavior, ISwimBehavior swimBehavior) : base(flyBehavior, soundBehavior, swimBehavior)
 {
 }
Beispiel #6
0
 public void SetSwimBehavior(ISwimBehavior behavior)
 {
     SwimBehavior = behavior;
 }
Beispiel #7
0
 protected Duck(IFlyBehavior flyBehavior, ISoundBehavior soundBehavior)
 {
     FlyBehavior   = flyBehavior;
     SoundBehavior = soundBehavior;
     SwimBehavior  = new FloatSwimBehavior(); // Default swim behavior for ducks
 }
Beispiel #8
0
 public IDuck(IFlyBehavior fb, IQuackBehavior qb, ISwimBehavior sb) : this(fb, qb)
 {
     this.swimBehavior = sb;
 }
Beispiel #9
0
 public IronManDuck(IFlyBehavior fb, IQuackBehavior qb, ISwimBehavior swimBehavior) : base(fb, qb, swimBehavior)
 {
 }
Beispiel #10
0
 public RubberDuck(IFlyBehavior flyBehavior, ISoundBehavior soundBehavior, ISwimBehavior swimBehavior) : base(flyBehavior, soundBehavior, swimBehavior)
 {
 }
Beispiel #11
0
 public WoodDuck(IFlyBehavior flyBehavior, ISoundBehavior soundBehavior, ISwimBehavior swimBehavior) : base(flyBehavior, soundBehavior, swimBehavior)
 {
 }
Beispiel #12
0
 protected Duck(IFlyBehavior flyBehavior, ISoundBehavior soundBehavior, ISwimBehavior swimBehavior)
 {
     _flyBehavior   = flyBehavior;
     _soundBehavior = soundBehavior;
     _swimBehavior  = swimBehavior;
 }
Beispiel #13
0
 public RedheadDuck(IFlyBehavior fb, IQuackBehavior qb, ISwimBehavior sb) : base(fb, qb, sb)
 {
 }