//Here can be internals for this class  properties, methods...
 //Abstract method that interact thw  abstract classes.
 public abstract void Interact(AbstractProductFirst abstractfactoryfirst);
 // Constructor
 public Client(AbstractFactory Factory)
 {
     AbstractProductFirst = Factory.CreateProductFirst();
     AbstractProductSecond = Factory.CreateProductSecond();
 }
 public override void Interact(AbstractProductFirst abstractfactoryfirst)
 {
     Console.WriteLine(this.GetType().Name + " interacts with " + abstractfactoryfirst.GetType().Name);
 }