Відкладена ініціалізація (Lazy initialization)
Коли об'єкт потрібен не одразу, чи взагалі може не знадобитися
class PaperReport
{
public void SendReport()
{
Console.WriteLine("Paper report sent!");
}
}
class DigitalReport
{
public void SendReport()
{
Console.WriteLine("Digital report sent!");
}
}
class MyBusiness
{
Lazy<DigitalReport> digitalReport = new Lazy<DigitalReport>();
Lazy<PaperReport> paperReport = new Lazy<PaperReport>();
public void SendDigitalReport()
{
digitalReport.Value.SendReport();
}
public void SendPaperReport()
{
paperReport.Value.SendReport();
}
}
static void Main(string[] args)
{
MyBusiness myBusiness = new MyBusiness();
myBusiness.SendDigitalReport();
//myBusiness.SendPaperReport();
Console.ReadLine();
}
Digital report sent!