static void Main(string[] args) { IKrediManager ihtiyacKrediManager = new IhtiyacKrediManager(); //instıns üretti IKrediManager tasitKrediManager = new TasitKrediManager(); IKrediManager konutKrediManager = new KonutKrediManager(); IKrediManager esnafKrediManager = new EsnafKrediManager(); ILogerService databaseLoggerService = new DatabaseLoggerService(); ILogerService fileLogerService = new FileLoggerService(); BasvuruManager basvuruManager = new BasvuruManager(); basvuruManager.BasvuruYap(esnafKrediManager, new List <ILogerService> { new SmsLogerService(), new DatabaseLoggerService() }); List <IKrediManager> krediler = new List <IKrediManager>() { esnafKrediManager, tasitKrediManager }; // liste olusturup listeye ekliyoruz talepleri // //basvuruManager.KrediOnBilgilendirmesiYap(krediler); Console.ReadLine(); }
static void Main(string[] args) { IKrediManager ihtiyacKrediManager = new IhtiyacKrediManager(); //IhtiyacKrediManager ihtiyacKrediManager = new IhtiyacKredimanager(); yazsaydıkta sonuç değişmezdi. İnterface onu implemente eden sınıfın referansını tutabilir. IKrediManager tasitKrediManager = new TasitKrediManager(); //TasitKrediManager tasitKrediManager = new TasitKrediManager(); aynı şey IKrediManager konutKrediManager = new KonutKrediManager(); //KonutKrediManager konutKrediManager = new KonutKrediManager(); ILoggerService databaseLoggerService = new DatabaseLoggerService(); //ilk loglama alternatifi mesela aşağıda bu loglama türünü seçip yazdık ama file loggerı da seçebilirdik bunlar loglama tercihi oldupundan herhangi birini seçiyoruz. ILoggerService fileLoggerService = new FileLoggerService(); //ikinci loglama alternatifi List <ILoggerService> loggers = new List <ILoggerService> { new SmsLoggerService(), new FileLoggerService() }; //Bu işlem yazılımda sürdürülebilirliği sağlar BasvuruManager basvuruManager = new BasvuruManager(); basvuruManager.BasvuruYap(new EsnafKrediManager(), loggers); //loglamayı veritabanına yapıcak hale getirdik. //hangisini seçersek onun hesaplamasını yapar konut deyince konutun çıktısını verir List <IKrediManager> krediler = new List <IKrediManager>() { ihtiyacKrediManager, tasitKrediManager }; //burada ihtiyaçKrediManager gibi kaç tane kredinin hesaplanmasını istiyorsak seçim yapıyoruz. //basvuruManager.KrediOnBilgilendirmesiYap(krediler); }
static void Main(string[] args) { IhtiyacKrediManager ıhtiyacKrediManager = new IhtiyacKrediManager(); TasitKrediManager tasitKrediManager = new TasitKrediManager(); KonutKrediManger konutKrediManger = new KonutKrediManger(); BasvuruManager basvuruManager = new BasvuruManager(); ILoggerService databaseLoggerService = new DataBaseLoggerService(); ILoggerService fileLoggerService = new FileLoggerService(); basvuruManager.BasvuruYap(ıhtiyacKrediManager, databaseLoggerService); List <IKrediManager> krediler = new List <IKrediManager>() { konutKrediManger }; // basvuruManager.KrediOnBilgilendirmesiYap(krediler); }
static void Main(string[] args) { ICreditManager ihtiyacKrediManager = new IhtiyacCreditManager(); //interface lerde onu implemente eden classın referansını tutabilir ICreditManager vehicleCreditManager = new VehicleCreditManager(); ICreditManager mortgageCreditManager = new MortgageCreditManager(); //yukarıdaki şubedeki adamın ekranında gördüğü açılır kutuda yazan kredi tipleri ILoggerService databaseLoggerService = new DataBaseLoggerService(); ILoggerService fileLoggerService = new FileBaseLoggerService(); BasvuruManager basvuruManager = new BasvuruManager(); basvuruManager.BasvuruYap(ihtiyacKrediManager, databaseLoggerService); List <ICreditManager> credits = new List <ICreditManager>() { vehicleCreditManager, ihtiyacKrediManager, mortgageCreditManager }; //basvuruManager.KrediOnBilgilendirmesiYap(credits); //ihtiyacKrediManager.Calculate(); //vehicleCreditManager.Calculate(); //mortgageCreditManager.Calculate(); /* * IhtiyacCreditManager ihtiyacKrediManager1 = new IhtiyacCreditManager(); * ihtiyacKrediManager1.Calculate(); * * * VehicleCreditManager vehicleCreditManager1 = new VehicleCreditManager(); * vehicleCreditManager1.Calculate(); * * MortgageCreditManager mortgageCreditManager1 = new MortgageCreditManager(); * mortgageCreditManager1.Calculate(); */ }
//SOLID - O: Open Closed Principle // Sisteme yeni bir özellik eklendiğinde sistemin çalışması bozulmaz. //interfaceler de o interface i implemente eden classın referansını tutabiliyor. interface onu implemente eden classın referansını tutabilir. //interface leri birbirlerinin alternatifi static void Main(string[] args) { IKrediManager ihtiyacKrediManager = new IhtiyacKrediManager(); IKrediManager tasitKrediManager = new TasitKrediManager(); IKrediManager konutKrediManager = new KonutKrediManager(); BasvuruManager basvuruManager = new BasvuruManager(); //basvuruManager.BasvuruYap(konutKrediManager, new DatabaseLoggerService()); basvuruManager.BasvuruYap(new EsnafKredisiManager(), new List <ILoggerService>() { new DatabaseLoggerService(), new SmsLoggerService() }); List <IKrediManager> krediler = new List <IKrediManager>() { ihtiyacKrediManager, konutKrediManager }; //basvuruManager.KrediOnBilgilendirmesiYap(krediler); }