Sayfalar

28 Ağustos 2019 Çarşamba

Constructor Injection



Constructor Metotlar, bir sınıf her yenilendiğinde çalışan ana sınıf metotlarıdır. Bu metotlar ile bir sınıf oluşturulurken, ihtiyaç olan tüm parametre yada işlemler gerçekleştirilebilir.

Örneğin; Veri tabanına her kayıt işleminden sonra log tutmak istersek, sınıf içine private olarak bir Log Interface tipinde bir değişken tanımlanır. CustomerManager nesnesi her new'lendiğinde bu sınıfın Yapıcı Constructor metoduna parametre olarak bir ILogger set ederek yollanan ILogger nesnesini tanımladığımız ILogger nesenesine atarız. Sınıf metotları içinde çağırarak log işlemini tutabiliriz.

DipNot:
Statik sınıflar Constructor edinemezler!
Bir sınıf birden fazla parametreli yada parametresiz constructor edinebilir.


class Program
{
    static void Main(string[] args)
    {
        CustomerManager customerMan = new CustomerManager(new DatabaseLogger());
        customerMan.Add(); // Sonuç CustomerAded  - Logged to DataBase
 
        Console.ReadLine();
    }
}
 
class CustomerManager : ICustomerManager
{
    private ILogger _logger;
 
    public CustomerManager(ILogger logger)
    {
        _logger = logger;
    }
 
    public void Add()
    {
        Console.WriteLine("CustomerAded");
 
        _logger.Log();
    }
}
 
class DatabaseLogger : ILogger
{
    public void Log()
    {
        Console.WriteLine("Logged to DataBase");
    }
}
 
class FileLogger : ILogger
{
    public void Log()
    {
        Console.WriteLine("Logged to File");
    }
}
 
interface ILogger
{
    void Log();
 
}

MVC LOADING TOO SLOW ISSUE