Exemplo n.º 1
0
        static void Main(string[] args)
        {
            //IKrediManager ihtiyacKrediManager = new IhtiyacKrediManager();  //interfacede aynı referans nosu alabilir.çalışır
            //ihtiyacKrediManager.Hesapla();

            //TasitKrediManager tasitKrediManager = new TasitKrediManager();
            //tasitKrediManager.Hesapla();

            //KonutKrediManager konutKrediManager = new KonutKrediManager();
            //konutKrediManager.Hesapla();

            IKrediManager ihtiyacKrediManager = new IhtiyacKrediManager();
            IKrediManager tasitKrediManager   = new TasitKrediManager();
            IKrediManager konutKrediManager   = new KonutKrediManager();

            BasvuruManager basvuruManager = new BasvuruManager();

            // basvuruManager.BasvuruYap(ihtiyacKrediManager);

            Console.WriteLine("-----------------------------------");

            //süslü parantez içi ekran olarak düşün.istenen krediyi seçtik
            //istediğin kadar kredi secebilirsin çünkü parametre olarak list gönderdik
            List <IKrediManager> krediler = new List <IKrediManager>()
            {
                tasitKrediManager, ihtiyacKrediManager
            };

            basvuruManager.KrediOnBİlgilendirmesiYap(krediler);

            Console.WriteLine("-----------------------------------");

            basvuruManager.BasvuruYap(konutKrediManager, new List <ILoggerService> {
                new DatabaseLoggerService(), new FileLoggerService()
            });

            //yeni bir kredi oluşturma yada log oluşturmak için sadece class açmamız yeterli
            //solid in o hrfi olur open cross prinsible
            //yani yeni bir sey eklediğimiz zaman diğer kodları değiştirmemize gerek yok
            //ya da sisteme yeni bir özellik eklendiğinde mevcut kodlar bozulmaz
        }