static void Main(string[] args) { ILoanManager personalLoanManager = new PersonalLoanManager(); ILoanManager autoLoanManager = new AutoLoanManager(); ILoanManager mortgageLoanManager = new MortgageLoanManager(); ILoggerService databaseLoggerService = new DatabaseLoggerService(); ILoggerService fileLoggerService = new FileLoggerService(); List <ILoggerService> loggers = new List <ILoggerService> { new SmsLoggerService(), new FileLoggerService() }; ApplyManager applyManager = new ApplyManager(); // applyManager.ApplyNow(personalLoanManager,fileLoggerService); //new DatabaseLoggerService() şeklinde de yazılabilir applyManager.ApplyNow(new TradesmenLoanManager(), loggers); // applyManager.ApplyNow(new TradesmenLoanManager(), new List<ILoggerService>(){new DatabaseLoggerService(),new SmsLoggerService()}); List <ILoanManager> loans = new List <ILoanManager>() { personalLoanManager, autoLoanManager }; //applyManager.LoanPrequalificaiton(loans); }
static void Main(string[] args) { ILoanManager financeLoanManager = new FinanceLoanManager(); ILoanManager transportLoanManager = new TransportLoanManager(); ILoanManager mortgageLoanManager = new MortgageLoanManager(); ILoggerService loggerService = new FileLoggerService(); ApplicationManager applicationManager = new ApplicationManager(); //applicationManager.BasvuruYap(mortgageLoanManager , new DatabaseLoggerService()); //applicationManager.BasvuruYap(transportLoanManager, loggerService); //applicationManager.BasvuruYap(new ArtisanLoanManager(), new SmsLoggerService()); List <ILoggerService> loggers = new List <ILoggerService> { new FileLoggerService(), new SmsLoggerService() }; applicationManager.BasvuruYap(new ArtisanLoanManager(), loggers); /*applicationManager.BasvuruYap(new ArtisanLoanManager(), new List<ILoggerService>() * { * new DatabaseLoggerService(), * new SmsLoggerService() * });*/ List <ILoanManager> loans = new List <ILoanManager>() { financeLoanManager, transportLoanManager }; //applicationManager.DoLoanPreviewInformation(loans); }
static void Main(string[] args) { ICreditManager consumerLoanManager = new ConsumerLoanManager(); ICreditManager vehicleLoanManager = new VehicleLoanManager(); ICreditManager mortgageLoanManager = new MortgageLoanManager(); ILoggerService databaseLoggerService = new DatabaseLoggerService(); ILoggerService fileLoggerService = new FileLoggerService(); //burada instance oluşturmak yerine örneğin 19.satırda parantez içine new FileLoggerService() yazabilirdik ICreditManager craftLoanManager = new CraftLoanManager(); ApplicationManager applicationManager = new ApplicationManager(); applicationManager.Apply(craftLoanManager, new List <ILoggerService> { new DatabaseLoggerService(), new FileLoggerService() }); //parantez içinde öncelikle kredi türleri için hangi metottan istem yaptıysak onu yazdırdı //burada birden fazla logger çalıştırdığımız için, aynı kredilerde olduğu gibi foreach kullanıp logger listesinde döndük. List <ICreditManager> credits = new List <ICreditManager>() { consumerLoanManager, vehicleLoanManager }; //applicationManager.DoCreditPreinformation(credits); }
static void Main(string[] args) { ILoanManager consumerLoanManager = new ConsumerLoanManager(); ILoanManager autoLoanManager = new AutoLoanManager(); ILoanManager mortgageLoanManager = new MortgageLoanManager(); ILoanManager tradesmanLoanManager = new TradesmanLoanManager(); //ILoggerService databaseLoggerService = new DatabaseLoggerService(); //ILoggerService fileLoggerService = new FileLoggerService(); //ILoggerService smsLoggerService = new SmsLoggerService(); List <ILoggerService> loggers = new List <ILoggerService> { new SmsLoggerService(), new DatabaseLoggerService(), new FileLoggerService() }; ApplicationManager applicationManager = new ApplicationManager(); applicationManager.MakeApplication(tradesmanLoanManager, loggers); List <ILoanManager> loans = new List <ILoanManager>() { consumerLoanManager, autoLoanManager }; //applicationManager.MakeCreditPreNotification(loans); }
static void Main(string[] args) { ILoanManager consumerLoanManager = new ConsumerLoanManager(); ILoanManager vehicleLoanManager = new VehicleLoanManager(); ILoanManager mortgageLoanManager = new MortgageLoanManager(); ILoanManager artisanLoanManager = new ArtisanLoanManager(); LoanApplicationManager loanApplicationManager = new LoanApplicationManager(); ILoggerService databaseLoggerService = new DatabaseLoggerService(); ILoggerService fileLoggerService = new FileLoggerService(); ILoggerService smsLoggerService = new SmsLoggerService(); //loanApplicationManager.Apply(vehicleLoanManager); //loanApplicationManager.Apply(mortgageLoanManager); loanApplicationManager.Apply(consumerLoanManager, new List <ILoggerService> { databaseLoggerService, smsLoggerService }); loanApplicationManager.Apply(artisanLoanManager, new List <ILoggerService> { new DatabaseLoggerService(), new FileLoggerService() }); loanApplicationManager.Apply(vehicleLoanManager, smsLoggerService); List <ILoanManager> loans = new List <ILoanManager>() { consumerLoanManager, vehicleLoanManager, mortgageLoanManager }; //loanApplicationManager.GiveCreditPreInformation(loans); }
static void Main(string[] args) { //interface lerin birbirlerinin alternatifi olan kod içeriklerinin farklı olan kod içerikleri için kullanırız. ICreditManager needLoanManager = new NeedLoanManager(); ICreditManager vehicleLoanManager = new VehicleLoanManager(); ICreditManager mortgageLoanManager = new MortgageLoanManager(); ICreditManager artisanLoanManager = new ArtisanLoanManager(); ILoggerService databaseLoggerService = new DatabaseLoggerService(); ILoggerService fileLoggerService = new FileLoggerService(); ILoggerService smsLoggerService = new SmsLoggerService(); List <ILoggerService> loggers = new List <ILoggerService>() { databaseLoggerService, smsLoggerService }; ApplicationManager applicationManager = new ApplicationManager(); applicationManager.MakeAnApplication(needLoanManager, loggers); //Hangi class ı gönderirsem onun methodu çalışır. applicationManager.MakeAnApplication(artisanLoanManager, loggers); List <ICreditManager> credits = new List <ICreditManager>() { needLoanManager, vehicleLoanManager, mortgageLoanManager }; //applicationManager.MakeCreditPreNotification(credits); }
static void Main(string[] args) { PersonalFinanceCreditManager personalFinanceCreditManager = new PersonalFinanceCreditManager(); TransportCreditManager transportCreditManager = new TransportCreditManager(); MortgageLoanManager mortgageLoanManager = new MortgageLoanManager(); ILoggerService databseLoggerService = new DatabaseLoggerService(); ILoggerService fileLoggerService = new FileLoggerService(); ApplicationManager applicationManager = new ApplicationManager(); applicationManager.MakeAnApplication(personalFinanceCreditManager, new List <ILoggerService>() { fileLoggerService, databseLoggerService }); List <ICreditManager> credits = new List <ICreditManager>() { transportCreditManager, mortgageLoanManager }; applicationManager.MakeCreditPreNotification(credits); }
static void Main(string[] args) { ICreditManager personalFinanceLoanManager = new PersonalFinanceLoanManager(); ICreditManager vehicleLoanManager = new VehicleLoanManager(); ICreditManager mortgageLoanManager = new MortgageLoanManager(); ILoggerService databaseLoggerService = new DatabaseLoggerService(); ILoggerService fileLoggerService = new FileLoggerService(); List <ILoggerService> loggers = new List <ILoggerService>() { new SmsLoggerService(), new FileLoggerService(), new DatabaseLoggerService() }; ApplicationManager applicationManager = new ApplicationManager(); applicationManager.Apply(personalFinanceLoanManager, loggers); List <ICreditManager> credits = new List <ICreditManager>() { personalFinanceLoanManager, vehicleLoanManager, mortgageLoanManager }; //applicationManager.GiveCreditPreInformation(credits); }
static void Main(string[] args) { ICreditManager personalFinanceCreditManager = new PersonalFinanceCreditManager(); ICreditManager transportCreditManager = new TransportCreditManager(); ICreditManager mortgageLoanManager = new MortgageLoanManager(); ILoggerService databaseLoggerService = new DatabaseLoggerService(); // *1* ILoggerService fileLoggerService = new FileLoggerService(); ILoggerService smsLoggerService = new SmsLoggerService(); AppealManager appealManager = new AppealManager(); List <ILoggerService> loggers = new List <ILoggerService>() { databaseLoggerService, smsLoggerService }; appealManager.MakeApp(mortgageLoanManager, loggers); //appealManager.MakeApp(mortgageLoanManager, new DatabaseLoggerService()); bu şekildede yapılabilir *1* işaret, olan satır kullanılmadan List <ICreditManager> credits = new List <ICreditManager>() { personalFinanceCreditManager, transportCreditManager }; //appealManager.CreditPriorKnowledge(credits); }
private static void Main(string[] args) { ICreditService financeCreditManager = new FinanceLoanManager(); ICreditService vehicleLoanManager = new VehicleLoanManager(); ICreditService mortgageLoanManager = new MortgageLoanManager(); ILoggerService databaseLoggerService = new DatabaseLoggerService(); ILoggerService fileLoggerService = new FileLoggerService(); List <ILoggerService> loggers = new List <ILoggerService> { new SmsLoggerService(), new FileLoggerService() }; //new SmsLoggerService(), new FileLoggerService() RecourseManager recourseManager = new RecourseManager(); recourseManager.RecourseToLoan(new MortgageLoanManager(), loggers); List <ICreditService> creditServices = new List <ICreditService>() { financeCreditManager, vehicleLoanManager }; recourseManager.LoanPreliminaryInformation(creditServices); Console.ReadLine(); }
static void Main(string[] args) { ICreditManager personelCreditManager = new PersonalFinanceCreditManager(); ICreditManager transportCreditManager = new TransportCreditManager(); ICreditManager mortgageLoanManager = new MortgageLoanManager(); ILoggerService databaseLoggerService = new DatabaseLoggerService(); ILoggerService fileLoggerService = new FileLoggerService(); List <ILoggerService> loggers = new List <ILoggerService> { new SmsLoggerService(), new FileLoggerService() }; ApplicationManager applicationManager = new ApplicationManager(); //applicationManager.MakeAnApplication(personelCreditManager, fileLoggerService); applicationManager.MakeAnApplication(new ArtisanLoanManager(), loggers); //applicationManager.MakeAnApplication(personelCreditManager, databaseLoggerService); //applicationManager.MakeAnApplication(mortgageLoanManager); //applicationManager.MakeAnApplication(transportCreditManager); List <ICreditManager> credits = new List <ICreditManager>() { personelCreditManager, transportCreditManager }; // applicationManager.CreditPreNotification(credits); }
static void Main(string[] args) { //ConsumerLoanManager consumerLoanManager = new ConsumerLoanManager(); //consumerLoanManager.Calculate(); //VehicleLoanManager vehicleLoanManager = new VehicleLoanManager(); //vehicleLoanManager.Calculate(); //MortgageLoanManager mortgageLoanManager = new MortgageLoanManager(); //mortgageLoanManager.Calculate(); //Interfaceler diger classlardaki inherite olabilir. Cunku tum kredi hesaplama yontemlerinde miras almistir. //ILoanBaseManager consumerLoanManager1 = new ConsumerLoanManager(); //consumerLoanManager1.Calculate(); //ILoanBaseManager vehicleLoanManager1 = new VehicleLoanManager(); //vehicleLoanManager1.Calculate(); //ILoanBaseManager mortgageLoanManager1 = new MortgageLoanManager(); //mortgageLoanManager1.Calculate(); ILoanBaseManager consumerLoanManager2 = new ConsumerLoanManager(); ILoanBaseManager vehicleLoanManager2 = new VehicleLoanManager(); ILoanBaseManager mortgageLoanManager2 = new MortgageLoanManager(); ILoanBaseManager tradesmanLoanManager2 = new TradesmanLoanManager(); ILoggerService databaseLoggerService = new DatabaseLoggerService(); ILoggerService fileLoggerService = new FileLoggerService(); ILoggerService smsLoggerService = new SmsLoggerService(); List <ILoggerService> services = new List <ILoggerService>() { databaseLoggerService, smsLoggerService }; CreditApplicationManager creditApplicationManager = new CreditApplicationManager(); //creditApplicationManager.CreditApplication(consumerLoanManager2, databaseLoggerService); creditApplicationManager.CreditApplication(tradesmanLoanManager2, services); List <ILoanBaseManager> loans = new List <ILoanBaseManager>() { consumerLoanManager2, vehicleLoanManager2, mortgageLoanManager2 }; //creditApplicationManager.ProvideCreditPreNotification(loans); //Interfaceleri birbirinin alternatifi olan ama kod icerikleri birbirinden farkli olan durumlar icin kullaniriz. //Bu yaptigimiz ornekte tum krediler hesaplama ortak bir nokta vardir. Ancak kodlari farkli kurallari vardir. //Kredinin turlerine hesaplama turleri degiskenlik gosterir. }
static void Main(string[] args) { //GeneralLoanManager generalLoanManager = new GeneralLoanManager(); alttaki ile aynı.İnterfacelerde o interfacei implemente eden classın referans numarasını tutabiliyomuş. //ICreditManager generalLoanManager = new GeneralLoanManager(); //generalLoanManager.Calculate(); //VehicleLoanManager vehicleLoanManager = new VehicleLoanManager(); //ICreditManager vehicleLoanManager = new VehicleLoanManager(); //vehicleLoanManager.Calculate(); //MortgageLoanManager mortgageLoanManager = new MortgageLoanManager(); //ICreditManager mortgageLoanManager = new MortgageLoanManager(); //mortgageLoanManager.Calculate(); //Kullanıcı ekranında bu krediler seçenek ICreditManager generalLoanManager = new GeneralLoanManager(); ICreditManager vehicleLoanManager = new VehicleLoanManager(); ICreditManager mortgageLoanManager = new MortgageLoanManager(); //ApplicationManager applicationManager = new ApplicationManager(); //applicationManager.MakeApplication(generalLoanManager); //yani ekranda ihtiyaç kredisi seçildiğinde o kredinin hesapla fon ekrana yazılır. //List<ICreditManager> loans = new List<ICreditManager>() { }; //kullanıcı kendi durumuna göre krediler asında filtrelem yapıldı ekranda seçilen krediler listelenerek ödeme hesabı yapıldı //applicationManager.MakeCreditPrenotification(loans); //Loglama kim ne zaman hangi operasyonu çağırdı, sistemde olan hareketlerin dokümanı.Loglama, dosya, veritabanı olarak tuutulabilir veya sms olarak tutulabilir. ILoggerService databaseLoggerService = new DatabaseLoggerService(); ILoggerService fileLoggerService = new FileLoggerService(); ILoggerService smsLoggerService = new SmsLoggerService(); ApplicationManager applicationManager = new ApplicationManager(); applicationManager.MakeApplication(new VehicleLoanManager(), smsLoggerService); //tasit kredisi yolllanna kişiye smsde yolla. VehicleLoanManager için yeni instance burda da bu şekilde oluşturulabilir. //Birden fazla logger yollama //List<ILoggerService> loggers = new List<ILoggerService> { new SmsLoggerService(), new FileLoggerService() }; //ApplicationManager applicationManager = new ApplicationManager(); //applicationManager.MakeApplication(new MortgageLoanManager(), loggers); //List<ICreditManager> loans = new List<ICreditManager>() { VehicleLoanManager, GeneralLoanManager }; //applicationManager.MakeCreditPrenotification(loans); }
static void Main(string[] args) { //ConsumerLoanManager consumerLoanManager = new ConsumerLoanManager(); //consumerLoanManager.Calculate(); //VehicleLoanManager vehicleLoanManager = new VehicleLoanManager(); //vehicleLoanManager.Calculate(); //MortgageLoanManager mortgageLoanManager = new MortgageLoanManager(); //mortgageLoanManager.Calculate(); //Yukarıdaki ve aşağıdaki ifadeler birebir aynı şeyi ifade ediyor //ILoanManager consumerLoanManager = new ConsumerLoanManager(); //consumerLoanManager.Calculate(); //ILoanManager vehicleLoanManager = new VehicleLoanManager(); //vehicleLoanManager.Calculate(); //ILoanManager mortgageLoanManager = new MortgageLoanManager(); //mortgageLoanManager.Calculate(); ILoanManager consumerLoanManager = new ConsumerLoanManager(); ILoanManager vehicleLoanManager = new VehicleLoanManager(); ILoanManager mortgageLoanManager = new MortgageLoanManager(); ILoggerService databaseLoggerService = new DatabaseLoggerService(); ILoggerService fileLoggerService = new FileLoggerService(); List <ILoggerService> loggers = new List <ILoggerService> { new SmsLoggerService(), new FileLoggerService() }; AppealManager appealManager = new AppealManager(); appealManager.MakeAnApplication(new TradesmanLoanManager(), loggers); List <ILoanManager> loans = new List <ILoanManager>() { consumerLoanManager, vehicleLoanManager, mortgageLoanManager }; //appealManager.MakeLoanPrenotification(loans); }
static void Main(string[] args) { RequirementLoanManager requirementLoanManager = new RequirementLoanManager(); VehicleLoanManager vehicleLoanManager = new VehicleLoanManager(); MortgageLoanManager mortgageLoanManager = new MortgageLoanManager(); ILoggerService databaseLoggerService = new DatabaseLoggerService(); ILoggerService fileLoggerService = new FileLoggerService(); RecourseManager recourseManager = new RecourseManager(); recourseManager.MakeAnApplication(mortgageLoanManager, databaseLoggerService); //It calculates whatever loan is sent from the RecourseManager List <ICreditManager> credits = new List <ICreditManager>() { requirementLoanManager, vehicleLoanManager }; //recourseManager.DoCreditPreinformation(credits); }
static void Main(string[] args) { ICreditManager needLoanManager = new NeedLoanManager(); ICreditManager transportCreditManager = new TransportCreditManager(); ICreditManager mortgageLoanManager = new MortgageLoanManager(); ApplicationManager applicationManager = new ApplicationManager(); applicationManager.MakeApplication(needLoanManager, new List <ILoggerService> { new DatabaseLoggerService(), new FileLoggerService() }); List <ICreditManager> credits = new List <ICreditManager> { needLoanManager, transportCreditManager }; //applicationManager.CreditPreliminaryInformation(credits); Console.ReadLine(); }
//SOLID //O- Open Closed Principle //Sisteme yeni bir özellik eklendiğinde mevcut kodlar bozulmaz. static void Main(string[] args) { //Interfaceler de o interfacei implemente eden class ın referans numarasını tutabilir. ICreditManager personalFinanceLoanManager = new PersonalFinanceLoanManager(); ICreditManager transportLoanManager = new TransportLoanManager(); ICreditManager mortgageLoanManager = new MortgageLoanManager(); ApplicationManager appManager = new ApplicationManager(); appManager.MakeAnApplication(personalFinanceLoanManager, new DatabaseLoggerService()); appManager.MakeAnApplication(mortgageLoanManager, new FileLoggerService()); List <ICreditManager> credits = new List <ICreditManager>() { personalFinanceLoanManager, transportLoanManager }; //.MakeAnCreditPreinformation(credits); }
static void Main(string[] args) { ICreditManager personalFinanceCreditManager = new PersonalFinanceCreditManager(); ICreditManager vehicleLoanManager = new VehicleLoanManager(); ICreditManager mortgageLoanManager = new MortgageLoanManager(); LoanApplication application = new LoanApplication(); application.Application(vehicleLoanManager, new DataBaseLoggerService()); List <ICreditManager> credits = new List <ICreditManager> { mortgageLoanManager, vehicleLoanManager }; //application.CreditInformation(credits); }
static void Main(string[] args) { ILoanManager personalFinanceManager = new PersonalFinanceManager(); ILoanManager transportLoanManager = new TransportLoanManager(); ILoanManager mortgageLoanManager = new MortgageLoanManager(); ILoanManager traderLoanManager = new TraderLoanManager(); ILoggerService databaseLoggerService = new DatabaseLoggerService(); ILoggerService fileLoggerService = new FileLoggerService(); ApplyManager applyManager = new ApplyManager(); applyManager.BasvuruYap(traderLoanManager, new SmsLoggerService()); //(new DatabaseLoggerService) de olur List <ILoanManager> loans = new List <ILoanManager>() { personalFinanceManager, transportLoanManager }; //applyManager.LoanPreview(loans); }
static void Main(string[] args) { ICreditManager personalFinanceCredit = new PersonalFinanceCredit(); ICreditManager transportCredit = new TransportCredit(); ICreditManager mortgageLoanManager = new MortgageLoanManager(); ILoggerService databaseLoggerService = new DatabaseLoggerService(); ILoggerService fileLogerService = new FileLoggerService(); AppealManager appealManger = new AppealManager(); appealManger.BasvuruYap(personalFinanceCredit, new DatabaseLoggerService()); List <ICreditManager> credits = new List <ICreditManager>() { personalFinanceCredit }; }
static void Main(string[] args) { ICreditManager personalCreditManager = new PersonalCreditManager(); ICreditManager transportCreditManager = new TransportCreditManager(); ICreditManager mortgageLoanManager = new MortgageLoanManager(); IloggerService databaseLoggerService = new DatabaseLoggerService(); IloggerService fileLoggerService = new FileLoggerService(); ReferenceManager referenceManager = new ReferenceManager(); referenceManager.ToApply(transportCreditManager, databaseLoggerService); //seçilen kredi hesaplama seçilen database loglama List <ICreditManager> credits = new List <ICreditManager>() { personalCreditManager, mortgageLoanManager }; //referenceManager.MakeCreditAdvanceNotification(credits); }
static void Main(string[] args) { ICreditManager financeLoanManager = new FinanceLoanManager(); ICreditManager transportLoanManager = new TransportLoanManager(); ICreditManager mortgageLoanManager = new MortgageLoanManager(); ICreditManager artisanLoanManager = new ArtisanLoanManager(); ILoggerService databaseLoggerService = new DataBaseLoggerService(); ILoggerService fileLoggerService = new FileLoggerService(); ApplicationManager applicationManager = new ApplicationManager(); applicationManager.Apply(artisanLoanManager, new List <ILoggerService> { new DataBaseLoggerService(), new SmsLoggerService() }); // new DataBaseLoggerService alternatif olarak böyle de ifade edilebilir List <ICreditManager> credits = new List <ICreditManager> { financeLoanManager, transportLoanManager }; //applicationManager.CreditPreInformation(credits); }
static void Main(string[] args) { //PersonalFinanceCreditManager personalFinanceCreditManager1 = new PersonalFinanceCreditManager(); //personalFinanceCreditManager1.Calculate(); //TransportCreditManager transportCreditManager1 = new TransportCreditManager(); //transportCreditManager1.Calculate(); //MortgageLoanManager mortgageLoanManager1 = new MortgageLoanManager(); //mortgageLoanManager1.Calculate(); /////////////////////////////////////////////////////////////////////////////////////////////////////// ILoanManager personalFinanceCreditManager2 = new PersonalFinanceCreditManager(); ILoanManager transportCreditManager2 = new TransportCreditManager(); ILoanManager mortgageLoanManager2 = new MortgageLoanManager(); AppealManager appealManager = new AppealManager(); ILoggerService databaseLoggerService = new DatabaseLoggerService(); ILoggerService fileLoggerService = new FileLoggerService(); ILoggerService smsLoggerService = new SmsLoggerService(); List <ILoggerService> loggers = new List <ILoggerService> { new SmsLoggerService(), new FileLoggerService() }; appealManager.DoAppeal(mortgageLoanManager2, loggers); //appealManager.DoAppeal(new ArtisanLoanManager(), new List<ILoggerService> { databaseLoggerService, smsLoggerService }); // Polymorphism List <ILoanManager> loans = new List <ILoanManager>() { personalFinanceCreditManager2, transportCreditManager2 }; //appealManager.DoCreditPreliminaryInformation(loans); }
static void Main(string[] args) { ILoanBaseManager personalFinanceLoanManager = new PersonalFinanceLoanManager(); ILoanBaseManager transportLoanManager = new TransportLoanManager(); ILoanBaseManager mortgageLoanManager = new MortgageLoanManager(); ILoggerService databaseLoggerService = new DatabaseLoggerService(); ILoggerService fileLoggerService = new FileLoggerService(); ApplicationManager applicationManager = new ApplicationManager(); applicationManager.MakeApplication(personalFinanceLoanManager, databaseLoggerService); applicationManager.MakeApplication(mortgageLoanManager, fileLoggerService); //applicationManager.MakeApplication(transportLoanManager); //applicationManager.MakeApplication(mortgageLoanManager); List <ILoanBaseManager> loans = new List <ILoanBaseManager>() { personalFinanceLoanManager, transportLoanManager, mortgageLoanManager }; //applicationManager.LoanPreInformation(loans); }
static void Main(string[] args) { ILoanManager needLoanManager = new NeedLoanManager(); ILoanManager vehicleLoanManager = new VehicleLoanManager(); ILoanManager mortgageLoanManager = new MortgageLoanManager(); ILoanManager esnafLoanManager = new EsnafLoanManager(); ILoggerService databaseLoggerService = new DatabaseLoggerService(); ILoggerService fileLoggerService = new FileLoggerService(); ILoggerService smsLoggerService = new SmsLoggerService(); ApplicationManager applicationManager = new ApplicationManager(); applicationManager.ToApply(esnafLoanManager, smsLoggerService); //applicationManager.ToApply(needLoanManager); List <ILoanManager> loans = new List <ILoanManager>() { needLoanManager, vehicleLoanManager }; //applicationManager.LoanInformation(loans); }
static void Main(string[] args) { ICreditManager personalFinanceCreditManager = new PersonalFinanceCreditManager(); ICreditManager vehicleCreditManager = new VehicleCreditManager(); ICreditManager mortgageLoanManager = new MortgageLoanManager(); ILoggerService databaseLoggerService = new DatabaseLoggerService(); ILoggerService fileLoggerService = new FileLoggerService(); ApplicationManager applicationManager = new ApplicationManager(); applicationManager.Apply(new ArtisanCreditManager(), new List <ILoggerService> { new DatabaseLoggerService(), new SmsLoggerService() }); List <ICreditManager> credits = new List <ICreditManager>() { personalFinanceCreditManager, vehicleCreditManager, mortgageLoanManager }; //applicationManager.CreditPreview(credits); }
static void Main(string[] args) { //---------INTERFACES-----------//----------POLIMORFISM-----------// // Yıldızlı not - Interface'leri birbirinin alternatifi olan ama kod içerikleri farklı olan durumlar için kullanırız! // Interface'ler de o interface'i implemente eden class'ı ve yani referansını tutabiliyorlar. // Loglama - kim ne zaman hangi operasyonu çağırdı; sistemde olan hareketlerin dökümüdür. Veri tabanı, dosya, sms, mail olarak tutulabilir. // Mesela Log için de interface kullanılır. Farklı tutma yolları için. //- PersonalFinanceCreditManager ihtiyacKrediManager = new PersonalFinanceCreditManager(); //- ihtiyacKrediManager.Calculate(); //- TransportCreditManager tasitKrediManager = new TransportCreditManager(); //- tasitKrediManager.Calculate(); //- MortgageLoanManager konutKrediManager = new MortgageLoanManager(); //- konutKrediManager.Calculate(); // Bu şekilde ekrana kredilerin içindeki kodu yazdıracaktır. // Ancak önemli nokta şudur ki: //- ICreditManager ihtiyacKredisiManager = new PersonalFinanceCreditManager(); //- ihtiyacKredisiManager.Calculate(); // Hepsi interface'imizi kullanarak da aynen çalışabilir. // // //---------------------CreditApplicationManager düzenledikten sonra ise şunu yaptık----------------------// ICreditManager konutKrediManager = new MortgageLoanManager(); ICreditManager ihtiyacKrediManager = new PersonalFinanceCreditManager(); ICreditManager tasitKrediManager = new TransportCreditManager(); // Bunların ekrandaki açılır kutu ve seçenekleri olduğunu düşünelim. ILoggerService databaseLoggerService = new DatabaseLoggerService(); // bunları da oluşturduğumuz için sonradan newledik. ILoggerService fileLoggerService = new FileLoggerService(); // ILoggerService smsLoggerService = new SmsLoggerService(); // bunlar üç loglama alternatifi // Birden fazla loglama için liste, şimdi aşağıda başvuru yerinin ikinci parametresi loggers yapmak yeterli olacak. List <ILoggerService> loggers = new List <ILoggerService> { fileLoggerService, databaseLoggerService, smsLoggerService }; // neleri istersek ekleriz. CreditApplicationManager creditApplicationManager = new CreditApplicationManager(); creditApplicationManager.MakeAnApplication(tasitKrediManager, loggers); // databaseLogger ve fileLogger oluşturunca istedi, parametreye ekledik // Yukarıda ise kullanıcının kredilerden birini seçtiğini, bu seçim ile de üstteki parametreye o seçimin eklendiğini düşünelim. // Bu kod kredi başvuru class'ına gider ve orada da taşıt kredisi atandığı için taşıt kredisi class'ının hesaplaması çalışır. // Bu yüzden de ekrana sadece Taşıt kredisi ödeme planı hesaplandı yazar. // Soyutlama yani bu OOP3 Projesinde anlatılanlar son derece önemlidir. İşe kabul ettirecek bilgilerdir. // Kredi ön bilgilendirmesi yap kısmından sonra buraya geldik. Orada parametre içine sayısı belirsiz olduğu için List yapmıştık. List <ICreditManager> krediler = new List <ICreditManager>() { tasitKrediManager, ihtiyacKrediManager }; // süslü parantezlerin içi: müşterinin bilgi almak istediği kredilerden seçtiğini varsayalım. //- creditApplicationManager.GiveCreditPreInformation(krediler); // krediönbilgilendirmesiyap(kredilerden) demek. // yeni kredi oluşturmamız istendi diyelim, esnaf kredisi gibi. SOLID'in O harfi (sisteme yeni özellik eklendiğinde sistem bozulmaz) // yeni class'ı ekleriz hesapla kısmını simüle ederiz. // Başvuru kodunun (yukarda) ilk parametresini new EsnafKredisiManager() yaparız. ( ya da orada new'lemek yerine diğerleri gibi üzerinde instence yaparız.) // ayın şey loglama için de geçerli. artık sms de yollayalım dedik. smsLoggerService class'ı oluşturduk. // :ILoggerService ekleyip implement edip public void Log() { cw( "sms yollandı" ) } deriz. // Program cs kısmında başvuru ikinci parametresini new smsLoggerService() yapar ya da diğerleri gibi üstte new'leriz. (alternatif yollardır) // Bu yaptıklarımız Polimorfizmdir. }