C#

Proxy Tasarım Deseni

Herkese merhaba, C# yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda tasarım desenlerinden biri olan Proxy tasarım desenini anlatacağım. Hadi başlayalım !

Aslında bu tasarım deseni diğer tüm tasarım desenlerinde de olduğu gibi C# diline özgü bir kavram değil, tüm nesne yönelimli programlama dillerinde daha temiz kod yazabilmek için oluşturulmuş ve yazılımcılar tarafından da kabul görmüş yazılı olmayan kurallardır ve nesne yönelimli programlama yapılabilen tüm dillerde uygulanabilmektedir.

Proxy Tasarım Deseni

Proxy tasarım deseni, bir nesneyi yaratmak ve kullanmak yerine, nesnenin bir arayüzünü taklit eden bir yer tutucu nesne kullanarak, nesneye erişim sağlayan bir tasarım desenidir. Bu tasarım deseni, bir nesnenin doğrudan kullanılmasını önleyerek nesnenin kontrolünü koruyabilir, yüklemeyi geciktirerek performansı artırabilir veya uzak bir nesne üzerinde çalışmanıza izin vererek dağıtık bir sistem tasarımını kolaylaştırabilir.

C# İle Uygulanması

Aşağıda, C# programlama dili kullanılarak Proxy tasarım deseninin uygulanması için bir örnek verilmiştir:

// Temsil edilecek nesne
interface INesne
{
    void Fonksiyon();
}

// Temsilci
class NesneTemsilcisi : INesne
{
    private Nesne _nesne;

    public void Fonksiyon()
    {
        if (_nesne == null)
        {
            _nesne = new Nesne();
        }
        _nesne.Fonksiyon();
    }
}

// Gerçek nesne
class Nesne : INesne
{
    public void Fonksiyon()
    {
        Console.WriteLine("Gerçek Nesne: Fonksiyon çalışıyor...");
    }
}

// Kullanım
class Kullanici
{
    static void Main()
    {
        INesne nesne = new NesneTemsilcisi();

        // İlk çağrı gerçek nesneyi yaratır
        nesne.Fonksiyon();

        // İkinci çağrı temsilciyi kullanır
        nesne.Fonksiyon();

        Console.ReadKey();
    }
}

Kod Açıklamaları

Bu örnek, Proxy tasarım deseninin nasıl kullanılabileceğini göstermektedir. INesne arayüzü, Nesne sınıfı ve NesneTemsilcisi sınıfı tanımlanmaktadır. NesneTemsilcisi sınıfı, INesne arayüzünü uygular ve gerçek Nesne sınıfına erişmek için bir yer tutucu görevi görür.

NesneTemsilcisi sınıfının Fonksiyon() metodu çağrıldığında, önce _nesne özelliğinin null olup olmadığı kontrol edilir. Eğer null ise, gerçek Nesne sınıfı yaratılır. Daha sonra gerçek Nesne sınıfının Fonksiyon() metodu çağrılır.

Kullanici sınıfı, NesneTemsilcisi sınıfını kullanarak INesne arayüzünden türetilen bir nesne yaratır ve Fonksiyon() metodunu iki kez çağırır. İlk çağrı gerçek Nesne sınıfını yaratırken, ikinci çağrıda NesneTemsilcisi sınıfı kullanılır. Bu, nesnenin yüklenmesini geciktirdiği ve performansı artırdığı anlamına gelir. Ayrıca, NesneTemsilcisi sınıfı, gerçek Nesne sınıfının kontrolünü korur.

Bu örnek, bir gerçek nesneyle etkileşim kurmanın maliyetli veya mümkün olmadığı durumlarda kullanılabilen bir Proxy tasarım deseni örneğidir. Bu desen, uzak bir sunucu üzerinde çalışan bir nesneyle etkileşim kurmak gibi diğer senaryolarda da kullanılabilir.

Sonuç

Özetle, Proxy tasarım deseni, bir nesneye erişim sağlamanın maliyetli veya mümkün olmadığı durumlarda kullanışlı bir tasarım desenidir. C# programlama dili, Proxy tasarım desenini uygulamak için kullanışlı bir araçtır ve yukarıdaki örnek, Proxy tasarım deseninin C# kullanılarak nasıl uygulanabileceğini göstermektedir.

Evet proxy tasarım deseni ve C# ile uygulanması bu şekilde olmakta. Tüm C# yazılarımıza buraya, diğer tasarım deseni yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 0 Ortalama: 0]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu