public Duck(IFly f, IQuack q, IWalk w, ISwim s) { _fly = f; _quack = q; _walk = w; _swim = s; }
public ADuck() { _fly = new DucksFly(); _quack = new DucksQuack(); _swimm = new DucksSwimm(); _go = new DucksGo(); }
protected Duck() { _fly = new FlyClass(); _quack = new QuackClass(); _walk = new WalkClass(); _swim = new SwimClass(); }
public ADuck(IFly f, IQuack q, ISwimm s, IGo g) { _fly = f; _quack = q; _swimm = s; _go = g; }
protected BaseDuck(IFly fly, IQuack quack, ISwim swim, IWalk walk, IName name) { _fly = fly; _quack = quack; _swim = swim; _walk = walk; _name = name; }
static void Main(string[] args) { DuckTypingProxyFactory factory = new DuckTypingProxyFactory(); Quack cuacky = new Quack(); IQuack proxy = factory.GenerateProxy <IQuack>(cuacky); Speak(proxy); Console.ReadLine(); }
public void RegisterObserver(IObserver observer) { IEnumerator <IQuack> iterator = quackers.GetEnumerator(); while (iterator.MoveNext()) { IQuack duck = iterator.Current; duck.RegisterObserver(observer); } }
public void Quack() { //Iterator pattern IEnumerator <IQuack> iterator = quackers.GetEnumerator(); while (iterator.MoveNext()) { IQuack quacker = iterator.Current; quacker.Quack(); } }
static void Main(string[] args) { #region Factory, Flock, and Duck Creation AbstractDuckFactory duckFactory = new CountingDuckFactory(); AbstractGooseFactory gooseFactory = new GooseFactory(); IQuack redhead = duckFactory.CreateRedheadDuck(); IQuack call = duckFactory.CreateDuckCall(); IQuack rubber = duckFactory.CreateRubberDuck(); IQuack goose = gooseFactory.CreateGoose(); Flock duckFlock = new Flock(); duckFlock.Add(redhead); duckFlock.Add(call); duckFlock.Add(rubber); duckFlock.Add(goose); IQuack mallard1 = duckFactory.CreatMallardDuck(); IQuack mallard2 = duckFactory.CreatMallardDuck(); IQuack mallard3 = duckFactory.CreatMallardDuck(); IQuack mallard4 = duckFactory.CreatMallardDuck(); Flock mallardFlock = new Flock(); mallardFlock.Add(mallard1); mallardFlock.Add(mallard2); mallardFlock.Add(mallard3); mallardFlock.Add(mallard4); duckFlock.Add(mallardFlock); #endregion DuckWatcher duckWatcher = new DuckWatcher(); duckFlock.Subscribe(duckWatcher); Console.WriteLine("\r\n***DUCK SIMULATOR: WHOLE FLOCK***"); Simulate(duckFlock); Console.WriteLine("The ducks quacked {0} times. Thank you for playing.", QuackCounter.Quacks); Console.WriteLine("\r\n***DUCK SIMULATOR: MALLARD FLOCK***"); Simulate(mallardFlock); Console.WriteLine("The ducks quacked {0} times. Thank you for playing.", QuackCounter.Quacks); Console.ReadLine(); }
private void listaquack_SelectedIndexChanged(object sender, EventArgs e) { switch (listaquack.SelectedIndex) { case 0: quack = new Quack(); quack.Typesound(); break; case 1: break; case 2: squeak = new Squeak(); squeak.Typesound(); break; } }
private void simulate(AbstractDuckFactory duckFactory) { IQuack redheadDuck = duckFactory.CreateRedheadDuck(); IQuack duckCall = duckFactory.CreateDuckCall(); IQuack rubberDuck = duckFactory.CreatRubberDuck(); IQuack gooseDuck = new GooseAdapter(new Goose()); Flock flockOfDucks = new Flock(); flockOfDucks.Add(redheadDuck); flockOfDucks.Add(duckCall); flockOfDucks.Add(rubberDuck); flockOfDucks.Add(gooseDuck); Flock flockOfMallards = new Flock(); IQuack mallardOne = duckFactory.CreateMallardDuck(); IQuack mallardTwo = duckFactory.CreateMallardDuck(); IQuack mallardThree = duckFactory.CreateMallardDuck(); IQuack mallardFour = duckFactory.CreateMallardDuck(); flockOfMallards.Add(mallardOne); flockOfMallards.Add(mallardTwo); flockOfMallards.Add(mallardThree); flockOfMallards.Add(mallardFour); flockOfDucks.Add(flockOfMallards); Console.WriteLine("\r\nDuck Simulator: With Observer"); Quacklogist quacklogist = new Quacklogist(); flockOfDucks.RegisterObserver(quacklogist); simulate(flockOfDucks); Console.WriteLine("The ducks quacked " + QuackCounter.GetQuacks + " times"); }
// the magic of polymorphism static void Simulate(IQuack duck) { duck.Quack(); }
// allow users to change quack behavior at runtime (strategy pattern) public void SetQuack(IQuack quack) { this.quack = quack; }
protected IQuack quack; // strategy pattern #endregion Fields #region Constructors // strategy pattern public Duck(IQuack quack) { this.quack = quack; }
public ADuck(IQuack q) { _quack = q; }
static void Speak(IQuack bird) { Console.WriteLine(bird.Name); bird.Talk(); }
public QuackCounter(IQuack duck) { this.duck = duck; observable = new Observable(this); }
public void SetQuackingInterface(IQuack quack) { Quack = quack; }
public void Add(IQuack child) { children.Add(child); }
protected BaseDuck(IFly fly, IQuack quack, ISwim swim) { _fly = fly; _quack = quack; _swim = swim; }
public BaseDuck(IFly fly, IQuack quack, ISwim swim) { _fly = fly; _quack = quack; _swim = swim; }
public CustomDuck(IFly _fly, IQuack _quack, ISwim _swim) { flyAction = _fly; quackAction = _quack; swimAction = _swim; }
public Duck(IFly _F, IQuack _Q) { FlyBehaviour = _F; QuackBehaviour = _Q; }
public Duck(IFly fly, IQuack quack, ISwim swim) : base(fly, quack, swim) { }
/// <summary> /// use combination to replace inherit /// </summary> /// <param name="quack"></param> public void SetQuack(IQuack quack) { this.quack = quack; }
public void Add(IQuack quacker) { quackers.Add(quacker); }
/// <summary> /// 模型鴨 /// </summary> public ModelDuck(IFly fly, IQuack quack) : base(fly, quack) { }
public Duck(IFly fly, IQuack quack) { Fly = fly; Quack = quack; }
public QuackCounter(IQuack duck) { this.duck = duck; }
public void setQ(IQuack quack) { _quack = quack; }
public Duck(IFly _fly, IQuack _quack, IWalk _walk) : base(_fly, _quack, _walk) { }
public Duck(IDisplay display, IQuack quack) { _display = display; _quack = quack; }