OOP vs prosedürel programlama - sayfa 34

 
Andrei :

Mesele şu ki, her şeyi her şeyden izole ederek, gerekli tüm değişkenlerin mevcut değerlerini bilmeniz gerektiğinde, kodun yeterli hata ayıklamasının imkansızlığından bahsetmiyorum bile, bu tür kodlarla başa çıkmak çok daha zor olacaktır. ..

Ticaret işlemci arayüzünü kullanan bir sınıf yazıyorsanız, ortaya çıkan arayüzün içindeki mevcut değişkenleri bilmemelisiniz. CURRENT bölümünde hata ayıklayın.

Ticaret işlemcisinin kendisinde hata ayıklamanız gerekiyorsa - yine, onu hata ayıklamanız gerekir ve bu sınıf içinde - örneğin giriş sinyali oluşturucudan herhangi bir değişken bilmemelisiniz.

Kapsüllemenin özü budur - her belirli yerde yalnızca ihtiyacımız olanla çalışırız ve başka yerlere tırmanmayız.

 
Andrei :
Düşük seviyeden değil, zamanın mümkün olan her anında neyin nereye aktığının ve neye dönüştüğü mantığından bahsediyoruz, tüm içsel değişkenlerin bilgisi de dahil... Bütün bu gereksiz mantığı anlamadan, kullanmanın anlamı yazar olmayanlar için bu kod tamamen kaybolur .. .

Merhaba...

Metatrader'ın nasıl çalıştığı hakkında çok şey anlıyor musunuz? MT değişkenlerinden en az birini biliyor musunuz? Ama bu onu kullanmanıza engel değil.

Programınızda bu şekilde yapmalısınız. Birkaç blok vardır - önceden tanımlanmış arayüzler kullanarak etkileşime girerler ve birbirlerine tırmanmazlar.

 
George Merts :

Ticaret işlemci arayüzünü kullanan bir sınıf yazıyorsanız, ortaya çıkan arayüzün içindeki mevcut değişkenleri bilmemelisiniz. CURRENT bölümünde hata ayıklayın.

Ticaret işlemcisinin kendisinde hata ayıklamanız gerekiyorsa - yine, onu hata ayıklamanız gerekir ve bu sınıf içinde - örneğin giriş sinyali oluşturucudan herhangi bir değişken bilmemelisiniz.

Kapsüllemenin özü budur - her belirli yerde yalnızca ihtiyacımız olanla çalışırız ve başka yerlere tırmanmayız.

Şimdiye kadar en az bir veya daha fazla karmaşık hesaplama algoritması yazdıysanız, farklı yerlerde birkaç kez işlenmesi gereken ve değerlerini programın farklı bölümlerinde kontrol edebilen birçok değişkenin her zaman olduğunu fark etmiş olabilirsiniz. herhangi bir zamanda... Nesnenin tüm iç içeriğinin dış dünyadan kapsüllenmesini bu duruma nasıl ekleyebileceğiniz açık değil ....
 
George Merts :

Merhaba...

Metatrader'ın nasıl çalıştığı hakkında çok şey anlıyor musunuz? MT değişkenlerinden en az birini biliyor musunuz? Ama bu onu kullanmanıza engel değil.

Programınızda bu şekilde yapmalısınız. Birkaç blok vardır - önceden tanımlanmış arayüzler kullanarak etkileşime girerler ve birbirlerine tırmanmazlar.

Dikkatli olun, MT'nin iç değişkenlerinden bahsetmiyoruz, izole ettiğiniz nesnenin iç değişkenlerinden bahsediyoruz, hata ayıklama ve kod yazma sırasında değerlerini okuma olasılığını önlüyor...
 
Andrei :
Dikkatli olun, MT'nin dahili değişkenlerinden değil, izole ettiğiniz nesnenin dahili değişkenlerinden bahsediyoruz, hata ayıklama ve kod yazma sırasında değerlerini okuma olasılığını önlüyor...

Bir nesnenin dahili değişkenlerine başka bir yerde ihtiyaç duyulursa, bunlar artık nesnenin dahili değişkenleri değildir, bu nesneyi oluşturmanın mantığını düşünmeniz gerekir (büyük olasılıkla bir kez daha daha küçük nesnelere bölün). Son çare olarak, gerçekten gerekliyse ve başka bir yol yoksa arayüzde public erişimli bir Get yöntemi yapılır.

 
George Merts :
Andrei, Peter veya Sansanych'ten bile daha klinik, zamanını boşa harca
 
Andrei :
Şimdiye kadar en az bir veya daha fazla karmaşık hesaplama algoritması yazdıysanız, farklı yerlerde birkaç kez işlenmesi gereken ve değerlerini programın farklı bölümlerinde kontrol edebilen birçok değişkenin her zaman olduğunu fark etmiş olabilirsiniz. herhangi bir zamanda... Nesnenin tüm iç içeriğinin dış dünyadan kapsüllenmesini bu duruma nasıl ekleyebileceğiniz açık değil ....

bu sadece, ne yazık ki, pratikte hiçbir şey yazmamış olanın siz olduğunu söylüyor :-(

sistemde böyle bir karışıklık!

 
Ihor Herasko :

Dahili nesne değişkenlerine başka bir yerde ihtiyaç duyulursa, bunlar artık dahili nesne değişkenleri değildir. Son çare olarak, gerçekten gerekliyse ve başka bir yol yoksa arayüzde public erişimli bir Get yöntemi yapılır.

Evet .. yaban turpu daha tatlı değil :) Fikir, minimum vücut hareketi ile hata ayıklamayı ve kod yazmayı kolaylaştırmak için yeterli bir programlama dilinde ama burada tamamen zıt bir durum var ...

 
Maxim Kuznetsov :

bu sadece, ne yazık ki, pratikte hiçbir şey yazmamış olanın siz olduğunu söylüyor :-(

sistemde böyle bir karışıklık!

Daha az duygu ve düşünce olsaydı ve tartışmanın özü hakkında daha fazla ayrıntı olsaydı, bir bedelin olmazdı. :)
 
Andrei :
Şimdiye kadar en az bir veya daha fazla karmaşık hesaplama algoritması yazdıysanız, farklı yerlerde birkaç kez işlenmesi gereken ve değerlerini programın farklı bölümlerinde kontrol edebilen birçok değişkenin her zaman olduğunu fark etmiş olabilirsiniz. herhangi bir zamanda... Nesnenin tüm iç içeriğinin dış dünyadan kapsüllenmesini bu duruma nasıl ekleyebileceğiniz açık değil ....

Merhaba.

Bir blokta başka bir bloktan veri gerekiyorsa, böyle bir fırsat sağlayan ilgili sanal arayüz bildirilir. Burada, yukarıda, işlem işlemcisinin işlevselliği yer almaktadır - programın farklı bölümlerinde, giriş oluşturucuda, takip ve çıkış kontrol cihazında, işlem durdurma kontrol cihazında gereklidir. Bu program bloklarının her biri, uzmanın nesnesine başvurabilir ve ticaret işlemcisinin arayüzünü alabilir. Aynı zamanda - hiç kimsenin bu işlemciye doğrudan erişimi yoktur - yalnızca önceden tanımlanmış bir arayüz aracılığıyla.

Benzer şekilde, diğer yerlerde - eğer bazı veriler gerekliyse - bu blok uygun arayüzü sağlamalıdır.

Sonuç olarak, programdaki herhangi bir noktanın yalnızca ihtiyaç duyduğu değişkenlere erişimi vardır ve diğer değişkenlere erişimi yoktur.