Lazy Initialization در سی شارپ

Lazy Initialization در برنامه‌نویسی به این معنا است که تا زمانی که واقعاً به یک مورد نیاز داریم، آن را مقداردهی اولیه (initialize) نمی‌کنیم. به عبارت دیگر، یک..

انتشار: , زمان مطالعه: 2 دقیقه
Lazy Initialization در زبان سی شارپ چیست ؟
دسته بندی: برنامه نویسی تعداد بازدید: 337

Lazy Initialization در زبان سی شارپ چیست ؟

Lazy Initialization در برنامه‌نویسی به این معنا است که تا زمانی که واقعاً به یک مورد نیاز داریم، آن را مقداردهی اولیه (initialize) نمی‌کنیم. به عبارت دیگر، یک شیء (object) تنها زمانی که اولین بار نیاز به استفاده از آن داریم، ایجاد (یا مقداردهی اولیه) می‌شود. این روش می‌تواند منابع سیستمی را بهره‌مند کند، زیرا از ایجاد و مقداردهی اولیه اشیاء ناخواسته جلوگیری می‌شود.

در زبان برنامه‌نویسی C#، می‌توان از کلاس Lazy<T> برای Lazy Initialization استفاده کرد. Lazy<T> یک کلاس جنریک است که در کتابخانه‌ی استاندارد .NET قرار دارد و امکان ایجاد شیء به شکل تنبل (lazy) را فراهم می‌کند.

نحوه‌ی استفاده از Lazy<T> در C# به شکل زیر است:

using System;

namespace LazyInitializationExample
{
    class Program
    {
        static void Main(string[] args)
        {
            Lazy<MyClass> lazyObject = new Lazy<MyClass>();

            Console.WriteLine("Lazy object has been created.");

            // The actual object is created when we access the Value property.
            MyClass instance = lazyObject.Value;

            Console.WriteLine("The object instance has been initialized.");
        }
    }

    class MyClass
    {
        public MyClass()
        {
            Console.WriteLine("MyClass constructor is running.");
        }
    }
}

در این مثال، کلاس MyClass داری یک سازنده (constructor) است که پیامی را در هنگام ایجاد یک نمونه از کلاس چاپ می‌کند. هنگامی که ما یک شیء از نوع Lazy<MyClass> ایجاد می‌کنیم، سازنده MyClass فراخوانی نمی‌شود تا زمانی که ما به خصوصیت Value دسترسی پیدا کنیم. به این ترتیب، می‌توانیم از ایجاد و مقداردهی اولیه ناخواسته‌ی اشیاء جلوگیری کنیم.

Lazy Initialization به ویژه در مواقعی مفید است که ایجاد و مقداردهی اولیه یک شیء منابع زیادی مصرف می‌کند و ممکن است که به طور مرتب به آن نیاز نداشته باشیم.


دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)