public void GetApplication(ICreditService creditManager, List <ILoggerService> loggerServices) { creditManager.Calculate(); foreach (ILoggerService loggerService in loggerServices) { loggerService.Log(); } }
//Method injection public void RecourseToLoan(ICreditService creditService, List <ILoggerService> loggerServices) { //Başvuran bilgilerini değerlendirme // creditService.Calculate(); foreach (var loggerService in loggerServices) { loggerService.Log(); } }
//başvuru servisini aynı zamanda loglamak istiyorsak //sadece interfaceini veriyoruz. (ILoggerService) //Methot injection //burada dependency injection yapıyoruz. //bu methodun hangi kredi türü için başvuru yapacağını ve nasıl loglanacağını enjekte ediyoruz. //public void CreditApplication(ICreditService creditService, ILoggerService loggerService) //eğer loglama için birden fazla servis kullanacaksak List of ile getireceğiz public void CreditApplication(ICreditService creditService, List <ILoggerService> loggerServices) { //Kredi Başvuru bilgileri değerlendirme creditService.Calculate(); //Seçilen Loglama servislerine loglama foreach (var loggerService in loggerServices) { loggerService.Log(); } }
public void Apply(ICreditService creditManager, ILoggerService loggerService = null) { //Başcuru bilgileri değerlendirme //... //Yanlış Kullanım //MortgageLoanManager mortgageLoanManager = new MortgageLoanManager(); //mortgageLoanManager.Calculate(); creditManager.Calculate(); if (loggerService != null) { loggerService.Log(); } }
public void Oransal(ICreditService credit) { credit.Calculate(); }