static void Main(string[] args) { ICreditManager personalCreditManager = new PersonalCreditManager(); //personalCreditManager.Calculate(); ICreditManager carCreditManager = new CarCreditManager(); //carCreditManager.Calculate(); ICreditManager residenceCreditManager = new ResidenceCreditManager(); //residenceCreditManager.Calculate(); ApplicationManager applicationManager = new ApplicationManager(); applicationManager.Apply(residenceCreditManager, new DatabaseLoggerService()); applicationManager.Apply(carCreditManager, new FileLoggerService()); applicationManager.Apply(personalCreditManager, new DatabaseLoggerService()); Console.WriteLine("------"); List <ICreditManager> credits = new List <ICreditManager>() { personalCreditManager, carCreditManager, residenceCreditManager, new PersonalCreditManager() }; //..... applicationManager.CreditInformation(credits); }
static void Main(string[] args) { //RequirenceCreditManager requirenceCreditManager = new RequirenceCreditManager(); //requirenceCreditManager.Calculate(); ICreditManager vehicleCreditManager = new VehicleCreditManager(); ICreditManager residenceCreditManager = new ResidenceCreditManager(); ICreditManager requirenceCreditManager = new RequirenceCreditManager(); //Interface ile requirenceCreditManager da çağrılabiliyor. ILoggerService databaseLoggerService = new DatabaseLoggerService(); ILoggerService fileLoggerService = new FileLoggerService(); ILoggerService smsLoggerService = new SMSLoggerService(); ApplicationManager applicationManager = new ApplicationManager(); //applicationManager.TakeApplication(vehicleCreditManager, fileLoggerService); //Burda hangi tip krediyi girdiğinde onu hesaplayacaktır. ve seçilen türde loglama yapacak //applicationManager.TakeApplication(vehicleCreditManager); //Bu durumda istediğimiz kadar yeni kredi tipi ekleyip çıkarabiliriz. applicationManager.TakeApplication(new EsnafKredisiManager(), new List <ILoggerService>() { smsLoggerService, databaseLoggerService }); //Yeni eklenen esnaf kredisi ve SMS loglama yöntemlerini böyle de newleyebiliriz. List <ICreditManager> credits = new List <ICreditManager>() { requirenceCreditManager, vehicleCreditManager }; //kredi karşılaştırması için seçilen krediler listesi {} içine yazılır applicationManager.CreditPreInformation(credits); }