public AnimalBase(string name) { _name = name; walkingBehavior = new NoWalk(); swimmingBehavior = new NoSwim(); flyingBehavior = new NoFly(); }
public void LetsMove() { for (int i = 0; i < animals.Count; i++) { if (animals[i] is IWalking) { IWalking iDog = animals[i] as IWalking; iDog.Walk(); } else if (animals[i] is ISwimming) { ISwimming iFish = animals[i] as ISwimming; iFish.Swim(); } else if (animals[i] is IFlying) { IFlying iBird = animals[i] as IFlying; iBird.Fly(); } else if (animals[i] is IFlying) { IFlying iButterfly = animals[i] as IFlying; iButterfly.Fly(); } } }
public IDuck Create(FlyType fly, QuackType quack, SwimType swim) { IFlying flying = _fly.Create(fly); IQuacking quacking = _quack.Create(quack); ISwimming swimming = _swim.Create(swim); return(new UniversalDuck(flying, quacking, swimming)); }
public override bool IsMovable(IBody obj) { if (obj is ISwimming) { ISwimming swimming = (ISwimming)obj; obj.SetStrench(StrenchForSwim); swimming.Swim(); } return(false); }
public void LetsMove() { if (animals is IWalking) { IWalking iDog = animals as IWalking; iDog.Walk(); } if (animals is ISwimming) { ISwimming iFish = animals as ISwimming; iFish.Swimm(); } if (animals is IFlying) { IFlying iButt = animals as IFlying; iButt.Fly(); } if (animals is IFlying) { IFlying iBird = animals as IFlying; iBird.Fly(); } }
public void LetsMove() { if (animals is IWalking) // проверяем, может ли собака ходить { IWalking iDog = animals as IWalking; // получаем интерфейсную ссылку. за счет условия выше мы можем быть уверены, что здесь не будет значения null iDog.Walk(); // вызываем метод интерфейса, он вызовет реализацию этого метода в классе Dog } if (animals is IFlying) // проверяем, может ли собака ходить { IFlying iFly = animals as IFlying; iFly.Fly(); } if (animals is ISwimming) { ISwimming iSwim = animals as ISwimming; iSwim.Swim(); } if (animals is IFlying) { IFlying iButterfly = animals as IFlying; iButterfly.Fly(); } }
public Penguin(ISwimming swim, IQuacking quack, IFlying fly) { swim_ = swim; quack_ = quack; fly_ = fly; }
public Rubber(ISwimming swim, IQuacking quack, IFlying fly) { swim_ = swim; quack_ = quack; fly_ = fly; }
public UniversalDuck(IFlying fly, IQuacking quack, ISwimming swim) : base(fly, quack, swim) { }
protected BaseBird(IFlying flying, ISound sound, ISwimming swimming) { _fly = flying ?? throw new ArgumentNullException(); _sound = sound ?? throw new ArgumentNullException(); _swim = swimming ?? throw new ArgumentNullException(); }
public Mallarrd(ISwimming swim, IQuacking quack, IFlying fly) { swim_ = swim; quack_ = quack; fly_ = fly; }
public UniversalBird(IFlying flying, ISound sound, ISwimming swimming) : base(flying, sound, swimming) { }
protected BaseDuck(IFlying fly, IQuacking quack, ISwimming swim) { _fly = fly ?? throw new ArgumentNullException(); _swim = swim ?? throw new ArgumentNullException(); _quack = quack ?? throw new ArgumentNullException(); }