Simple application demonstrating the "Abstract Factory" design pattern in C#