Thread overview
Pimpl idiom pattern
Apr 03, 2018
hsencan
Apr 03, 2018
hsencan
April 03, 2018

Merhabalar,

internette 'Every C++ developer should know about the pimpl idiom pattern' bu şekilde bir cümle gödrüm. Tabi meraktan hemen araştırdım. Açıkçası çok anlamadım. Bende hemen buraya geldim :)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 03, 2018

Teşekkürler.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 03, 2018

Nesne yönelimli programla C++ (ve başka) dillerde class (veya struct) ile uygulanır. class'ın sorunu, türün genele açık (public) arayüzü ile kendisine özel parçalarını (private) aynı yerde birleştirmesidir. Sorunlu olmasının nedenleri:

  • Örneğin, push_back vs. ile kullandığımız vector'ün sunduğu elemanları bellekte nasıl tuttuğu vs. bizi ilgilendirmemelidir
  • vector'ün gerçekleştirmesinde olası değişiklikler bizim kodumuzun tekrar derlenmesi gerektirmemelidir

pimpl, gerçekleştirmenin C dilinde void* arkasına gizlenmesinin sınıflara (ve yapılara) uygulanmış halidir. Kullanıcı sınıfın yalnızca genele açık olan işlevlerini görür. Sınıfın içindeki tek özel üye, pimpl (Pointer to IMPLementation: gerçekleştirme göstergesi) isimli üyedir. Sınıfın genel işlevleri işlerini o üyeye havale ederler; o üye .cpp dosyasında tanımlanmıştır ve gerektiği kadar karmaşık olabilir. Kullanan kod bu karmaşıklıktan korunmuş biçimde yalnızca pimpl'ın varlığını bilerek yaşamaya devam eder.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]