Public Class ClassThree
{
ClassOne obj = null; //ClassOne:ClassThree
ClassTwo obj2 = null; //ClassTwo:ClassThree
public List<Query> GetQueries(string source)
{
List<Query> Queries = new List<Query>();
if (source.Equals("ABCD"))
{
obj = new ClassOne();
AddQuerie(Queries, obj.GetQuery1());
AddQuerie(Queries, obj.GetQuery2());
AddQuerie(Queries, obj.GetQuery3());
AddQuerie(Queries, obj.GetQuery4());
AddQuerie(Queries, obj.GetQuery5());
AddQuerie(Queries, obj.GetQuery6());
}
else
{
obj2 = new ClassTwo();
AddQuerie(Queries, obj2.GetQuery1());
AddQuerie(Queries, obj2.GetQuery2());
AddQuerie(Queries, obj2.GetQuery3());
AddQuerie(Queries, obj2.GetQuery4());
AddQuerie(Queries, obj2.GetQuery5());
AddQuerie(Queries, obj2.GetQuery6());
}
return Queries;
}
}
How to remove duplication of AddQuerie method. Is there any chance of writing single method but it must access the respective object of ClassOne or ClassTwo ?
NOTE: ClassOne GetQueryX() is different from ClassTwo GetQueryX()
Methods are totally different from one class to another