Define an interface for creating an object, but let sub-classes decide which class to instantiate. Factory Method lets a class defer instantiation to sub-classes.
That means, You can create a object without specifying exact class, by using /calling factory method.
public interface ISubClass{
public string GetMethodResult();
}
public class ClassA : ISubClass {
public string GetMethodResult(){
return "Result from Class A";
}
}
public class ClassB : ISubClass {
public string GetMethodResult(){
return "Result from Class B";
}
}
public enum ClassType {
Class_A, Class_B
}
public class ClassFactory{
public ISubClass GetClass(ClassType type){
switch(type){
case type.Class_A:
return new ClassA();
case type.Class_B:
return new ClassB();
}
}
}