static void Main(string[] args) { AbstractFactory af = new Factory1(); AbstractProduct ap = af.MakeProduct(); ap.DoSomething(); af = new Factory2(); ap = af.MakeProduct(); ap.DoSomething(); }