static void Main() { // factory var factories = new ShopFactory[2]; factories[0] = new CanvasFactory("cloth", 14, 12, 100); factories[1] = new DrawingPaperFactory("Cardboard", 30, 30, 15); foreach (ShopFactory factory in factories) { Console.WriteLine(factory.GetType().Name); } Console.WriteLine("\n\n"); // Builder var pencil = new SupplieCreator(new Pencil("red", 12, 2, 1)); pencil.CreateSupplie(); pencil.GetSupplie(); var pastel = new SupplieCreator(new Pastel("black", 2, 4, 2)); pastel.CreateSupplie(); pastel.GetSupplie(); //abstract factory IBrush standartBrush = new AngleBrush(); BrushManager standartManag = new BrushManager(standartBrush); Console.WriteLine(standartManag.GetAngleBrushDelails()); Console.WriteLine(standartManag.GetFlatBrushDetails()); IBrush acrylicBrush = new FlatBrush(); BrushManager acrylicManag = new BrushManager(acrylicBrush); Console.WriteLine(acrylicManag.GetAngleBrushDelails()); Console.WriteLine(acrylicManag.GetFlatBrushDetails()); Console.ReadLine(); }