Yan etkileri hakkında.
var1
Devletin bir parçası olup olmadığını sormak bu sorunun noktasını kaçırıyor. Tabii var1
devam ederse, bunun bir örneği olması gerekir. Kalıcılığa ihtiyaç duyulup duyulmadığına bakmak için her iki yaklaşım da yapılabilir.
Yan etki yaklaşımı
Bazı örnek değişkenler yalnızca aramadan aramaya özel yöntemler arasında iletişim kurmak için kullanılır. Bu tür bir örnek değişkeni varlığın dışına çıkarılabilir, ancak böyle olması gerekmez. Bazen işler onlarla daha açık. Ancak bu risksiz değil.
İki farklı özel kapsamda kullanıldığı için bir değişkenin kapsamı dışında kalmasına izin veriyorsunuz. Bunu yerleştirdiğiniz kapsamda gerekli olduğundan değil. Bu kafa karıştırıcı olabilir. "Kürekler kötüdür!" kafa karıştırıcı. Bu işe yarayabilir ama sadece iyi ölçeklendirilmez. Sadece küçük çalışır. Büyük nesneler yok. Kalıtım zinciri yok. Yo yo etkisi yapmayın .
Fonksiyonel yaklaşım
Şimdi, var1
devam etmeli olsa bile, hiçbir şey kullanmak zorunda olduğunuzu söylemez, açık çağrılar arasında korunmak istediğiniz duruma gelmeden önce alabileceği her geçici değer için. Bu hala bir ayar yapabilirsiniz anlamına gelirvar1
daha işlevsel yöntemlerden başka şey kullanarak örnek oluşturabileceğiniz .
Yani devletin bir parçası olsun ya da olmasın, yine de her iki yaklaşımı da kullanabilirsiniz.
Bu örneklerde 'var1' öylesine kapsüllenmiş ki hata ayıklayıcınızdan başka hiçbir şey olmadığını biliyor. Sanırım bunu bilerek yaptın çünkü bizi önyargılı etmek istemiyorsun. Neyse ki hangisi olduğu umurumda değil.
Yan etki riski
Bu, sorunuzun nereden geldiğini biliyorum. Sefil altında çalıştım yo yo 'mutasyon bir örnek birden yöntemlerde birden çok düzeyde değişken ve sincap onu izlemeye çalışıyorum gitmiş olduğunu ing miras. Bu risk.
Bu beni daha işlevsel bir yaklaşıma iten acıdır. Bir yöntem bağımlılıklarını ve çıktılarını imzasında belgeleyebilir. Bu güçlü ve net bir yaklaşımdır. Ayrıca, özel metodu ne geçtiğini değiştirerek sınıf içinde daha tekrar kullanılabilir hale getirmenizi sağlar.
Yan etkilerin tersi
Aynı zamanda sınırlayıcı. Saf fonksiyonların yan etkisi yoktur. Bu iyi bir şey olabilir ama nesneye yönelik değil. Nesne yönlendirmesinin büyük bir kısmı, yöntemin dışındaki bir içeriğe gönderme yeteneğidir. Bunu burada tüm dünyayı ve dünyayı sızdırmadan yapmak OOP'un gücüdür. Globalin esnekliğini alıyorum ama sınıfta hoş bir şekilde yer alıyor. İsterseniz bir yöntemi çağırabilir ve her örnek değişkenini aynı anda mutasyona uğrayabilirim. Bunu yaparsam, en azından bu yöntemi ne yaptığını açıklığa kavuşturan bir isim vermek zorunda olduğum için insanlar böyle olunca şaşırmayacaklar. Yorumlar da yardımcı olabilir. Bazen bu yorumlar "posta koşulları" olarak resmileştirilir.
İşlevsel özel yöntemlerin olumsuz yönü
İşlevsel yaklaşım bazı bağımlılıkları netleştirir. Tamamen işlevsel bir dilde olmadığınız sürece gizli bağımlılıkları ekarte edemez. Bilmiyorsunuz, sadece bir yöntem imzasına bakarak, kodunun geri kalanında sizden bir yan etki gizlemediğini biliyorsunuz. Sen yapmıyorsun
Şartlandırma sonrası
Siz ve takımdaki herkes, yan etkileri (ön / post koşullar) yorumlardaki güvenilir bir şekilde belgeliyorsa, işlevsel yaklaşımdan elde edilen kazanç çok daha azdır. Evet biliyorum, hayal kuruyorum.
Sonuç
Şahsen, eğer yapabilirsem, her iki durumda da işlevsel özel yöntemlere yöneliyorum, ama dürüst olmak gerekirse, bunun nedeni, koşullu yan etki öncesi / sonrası yorumların, eski olduklarında veya yöntemler sıra dışı çağrıldığında derleyici hatalarına neden olmamasıdır. Gerçekten yan etkilerin esnekliğine ihtiyacım yoksa, sadece işlerin işe yaradığını bilmek istiyorum.