public Toy ProductToy(ToyStyle style) { var toy = CreateToy(style); // Factory method toy.Prepare(); toy.Package(); toy.Label(); return(toy); }
protected override Toy CreateToy(ToyStyle style) => new FerryToy(style);
protected override Toy CreateToy(ToyStyle style) => new HelicopterToy(style);
protected abstract Toy CreateToy(ToyStyle style);
public FerryToy(ToyStyle style) : base(style) { Type = ToyType.Ferry; Price = 30; }
public HelicopterToy(ToyStyle style) : base(style) { Type = ToyType.Helicopter; Price = 50; }
public CarToy(ToyStyle style) : base(style) { Type = ToyType.Car; Price = 20; }
public void Prepare() => Console.WriteLine($"A {ToyStyle.ToString()} Style of {Type.ToString()} is prepared.");
public Toy(ToyStyle style) { ToyStyle = style; }