Sample Abstract Factory
Interface And Abstract based