Add Factory Method Pattern

Add Factory Method Pattern and update Abstract Factory Pattern
implementation