Prototype Design Pattern

Çağlar GÜL
Mar 14, 2020 · 1 min read

Büyük,karmaşık, resource kullanımı oldukça fazla olan nesneler ile çalışıyorsak bu nesneleri defalarca new ile yeniden yaratma maliyeti çok fazla ise, nesneler arası alanların kopyalanması gerekiyorsa faydalı olabilecek bir pattern Prototype.

Neden önemli bu pattern çünkü bir uygulama geliştirirken maliyetler çok önemli,nesnelerin üretilme maliyeti de tabii ki öyle. İşte Prototype pattern ile nesnenin tipinin ne olduğunu bilmeden elimizdeki bir nesnenin kopyasını alabiliyoruz.

Bu pattern’i işlerken 2 farklı nesne kopyalama yöntemini inceleyeceğiz: Shallow Copy, Deep Copy.

İlk başta shallow kopyalama tekniği ile prototype tasarım desenini inceleyeceğiz.

Prototype tasarım deseninde 3 nesne yapısı vardır.

  • Prototype: Klonlama yapılacak sınıfların uygulaması gereken interface veya abstract sınıf.
  • Concrete Prototype: Klonlama özelliği olacak gerçek sınıflar.
  • Client: Klonlanmış nesneyi elde edecek nesne.

Shallow Copy:

Nesnenin üye elemanlarını kopyalar. Eğer bu üye eleman Değer tipinde ise bit bit kopyalama işlemi gerçekleştirilir. Eğer üye eleman referans tipinde ise referans kopyalanır fakat referansın gösterdiği veri kümesi kopyalanmaz. Orjinal nesne ve Kopyalanmış nesnede yer alan referans tipi üye eleman bellekte aynı veri kümesine işaret eder. Kopyalama işlemi static üye elemanları için geçersizdir.

Deep Copy:

Nesnenin bütün değer ve referans üye elemanlarını bit bit kopyalama işlemine denir. Deep copy işlemini kendimiz yazmamız gerekmektedir. Deep copy için .Net in sunduğu herhangi bir sınıf metod bulunmamaktadır.

Çağlar GÜL | Blog

Tecrübelerimi not aldığım bloğum 📄📌

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store