static void Main(string[] args) { var child = ListenerFactory.CreateListener(ListenerFactory.ListenerType.Child); var zooKeper = ListenerFactory.CreateListener(ListenerFactory.ListenerType.ZooKeper); var enclosureBuilder1 = new EnclosureBuilder().AddAnimal(AnimalFactory.AnimalType.Bird, "Jaszczomp"); var enclosureBuilder2 = new EnclosureBuilder() .AddAnimal(AnimalFactory.AnimalType.Mammal, "Dzik") .AddAnimal(AnimalFactory.AnimalType.Reptile, "Wonsz"); var sectorBuilder1 = new SectorBuilder().AddEnclosure(enclosureBuilder1).AddEnclosure(enclosureBuilder2); var enclosure3 = new EnclosureBuilder().AddAnimal(AnimalFactory.AnimalType.Amphibia, "Aksolotl") .AddAnimal(AnimalFactory.AnimalType.Fish, "Halibut"); var enclosure4 = new EnclosureBuilder(); var sectorBuilder2 = new SectorBuilder().AddEnclosure(enclosure3).AddEnclosure(enclosure4); var zoo = new ZooBuilder().AddSector(sectorBuilder1).AddSector(sectorBuilder2).Build(); zoo.Humans.Add(child); zoo.Humans.Add(zooKeper); var animals = zoo.GetAnimals(); var visitor = new EmptyPartVisitor(); zoo.AcceptVisitor(visitor); var result = visitor.GetResult(); result.ForEach(r => Console.WriteLine(r.GetName() + " is empty")); animals.ForEach(a => a.AddListener(zooKeper)); animals.ForEach(z => { Console.WriteLine(z.Name); z.Eat(); z.Move(); }); Console.ReadLine(); }
public Animal Construct(ZooBuilder zooBuilder) { return(zooBuilder); }