public Plan1DataWrapper(PreferedDataProvider dataProvider, string locationParam) { //We can keep all databases,or instantiate only one and remove dataProvider member in this class. this.dataProvider = dataProvider; switch (dataProvider) { case PreferedDataProvider.XmlDataProvider: { localData = new Plan1XmlData(locationParam); } break; default: { localData = new Plan1Data(); } break; } }
// Use this for initialization public Plan1ModelWrapper(PreferedDataProvider preferedDataProvider, string locationParam) { dataProvider = new Plan1DataWrapper(preferedDataProvider, locationParam); logic = new Plan1BusinessLogic(ref dataProvider); //Desired usage (in Business Logic class methods) : /* * logic->SortAllReports() * { * dataProvider->Give me all the reports(database is automatically selected by API) * * //sort reports here * * .//return sorted data * } */ }
public Plan2Data(PreferedDataProvider dataProvider) { //We can keep all databases,or instantiate only one and remove dataProvider member in this class. }