Tamam, bu yüzden başlık biraz tıkanma ama ciddi bir şekilde söylüyorum, bir süre tekme sorma . Mesajları , gerçek nesne yönelimli biçimde kullanılmaya teşvik etmeyi seviyorum . Ama bunun kafamda karmakarışık olan bir dırdır sorunu var.
İyi yazılmış bir kodun OO ilkelerini ve işlevsel ilkelerini aynı anda izleyebileceğinden şüphelenmeye başladım. Bu fikirleri uzlaştırmaya çalışıyorum ve indiğim en büyük yapıştırma noktası return
.
Saf fonksiyonun iki özelliği vardır:
Aynı girişlerle tekrar tekrar çağırmak her zaman aynı sonucu verir. Bu değişmez olduğu anlamına gelir. Durumu sadece bir kez ayarlanır.
Yan etkisi yoktur. Aramanın sebep olduğu tek değişiklik sonucu üretmektir.
Öyleyse, return
sonuçları iletme yönteminiz olarak kullanmaya yemin ederseniz, tamamen işlevsel olmak nasıl geçer ?
Söyle, sormayın bazı yan etkiye düşünün ne kullanılarak fikri eser. Bir nesneyle uğraşırken içsel durumu hakkında soru sormuyorum. Yapmam gerekeni söylüyorum ve yapmam gerektiğini söylediklerimle ne yapabileceğimizi bulmak için içsel durumunu kullanıyor. Bir kere söylediğimde ne yaptığını sormuyorum. Ne yapması gerektiği hakkında bir şeyler yapmasını bekliyorum.
Ben söyle, Kapsülleme için farklı bir isimden daha fazlasını sorma. Kullandığımda return
beni neyin aradığı hakkında hiçbir fikrim yok. Protokolü konuşamam, protokolümle başa çıkmak için onu zorlamalıyım. Hangi durumlarda iç devlet olarak ifade edilir. Maruz kalan tam olarak durum olmasa bile, genellikle sadece durum ve giriş argümanlarında yapılan bir hesaplama. Yanıt verecek bir arayüze sahip olmak, sonuçları iç durumdan veya hesaplamalardan daha anlamlı bir şeye masaj yapma şansı verir. Bu mesaj geçiyor . Bu örneğe bakınız .
Gündüz yolunda, disk sürücülerinin içinde gerçekten diskler varken ve bir parmak sürücü, tekerlek parmaklarınızla dokunamayacak kadar soğukken arabada yaptığınız şeydi, sinir bozucu insanlara parametreleri içeren işlevleri nasıl düşündüklerini öğrettim. void swap(int *first, int *second)
çok kullanışlı görünüyordu ama sonuçları döndüren işlevler yazmaya teşvik edildik. Ben de bunu iman üzerine yürekten aldım ve takip etmeye başladım.
Fakat şimdi insanların nesnelerin sonuçlarını gönderdikleri yeri kontrol etmelerine nasıl izin verdikleri konusunda mimarlık inşa ettiğini görüyorum . İşte örnek bir uygulama . Çıkış portu nesnesine enjekte etmek tekrar tekrar out parametre fikri gibi gözüküyor. Ancak bunu sorma-sorma nesneleri, diğer nesnelere yaptıklarını söyler.
Yan etkileri ilk öğrendiğimde, çıktı parametresi gibi düşündüm. İnsanlara işlerin bir kısmını şaşırtıcı bir şekilde gerçekleştirerek, yani return result
sözleşmeyi takip etmeyerek şaşırtmamaları söylendi . Şimdi eminim ki, yan etkileri ile çarpıştığı ama geri dönüşü gerçekten sadece bir kongre olduğunu biliyorum, sonuçta yığının üzerine itilen sonucu bıraktı, böylece ne denirse onu patlatabilirsin. Hepsi bu kadar.
Gerçekten sormaya çalıştığım şey:
Mı return
kilitleri olmadan iplik güvenlik tüm bu yan etki sefalet önlemek ve almak için tek yol vb Ya da ben takip edebilirsiniz sorma, söyleme tamamen işlevsel bir şekilde?