Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        //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);
        }