![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Peter, şiddetle tavsiye ederim
https://en.wikipedia.org/wiki/Code_Complete
Peter. Bu nedenle ben de konuşuyorum - düşüncesiz miras gerekli değil. Açık bölme ve sınıflandırma.
bir örnek vereceğim:
Kategori "Meyve" - temel nesne.
Sınıflar - "Meyveler", "Sebzeler" - "Meyve" sınıfının mirasçıları.
"Meyve" sınıfı, sınıfların ebeveynidir - Kivi, Mango, Limon, Portakal.
Yeni bir kategori belirir: "Narenciye".
Onu "Meyve" sınıfı ile mirasçıları - Kivi, Mango, Limon ve Portakal arasına koyduk.
"Narenciye", Limon ve Portakal'ın ebeveynidir.
Sonra, - Mango ve Lemon'ı geçip - Li-Mango nesnesini alıyoruz.
Nesne kısmen narenciye meyvelerinin ve kısmen - narenciye olmayan meyvelerin özelliklerini içerir. İKİ ebeveyni vardır ve bu Hiyerarşiyi optimize etmek imkansızdır.
Böylece, "Lee-Mango" nesnesinin çoklu mirasını ve "Meyve" temel nesnesine giden bir çift yolu elde ederiz: narenciye zinciri ve "Mango" zinciri aracılığıyla.
Bu zincirlerde, "Lee-Mango"nun bireyselliğini korumak için Ebeveynlerin ekstra özelliklerini atlamalıyız.
Peter, buna denir: kendi beynini becermek - aşılmaz zorluklarla ortaya çıkmak. Görevi somutlaştırmak ve bunun için sınıflar yapmak gerekir.
Neden bir ara sınıf "narenciye" tanıtalım? Belki de sorun, dinamik listeye "narenciye" özelliğinin eklenmesiyle çözülebilir.
Peter, buna denir: kendi beynini becermek - aşılmaz zorluklarla ortaya çıkmak. Görevi somutlaştırmak ve bunun için sınıflar yapmak gerekir.
Neden bir ara sınıf "narenciye" tanıtalım? Belki de sorun, dinamik listeye "narenciye" özelliğinin eklenmesiyle çözülebilir.
Ve bu. OOP tamamen aynı bir programlama aracıdır, verilerle çalışmanın bir yolu değildir (nasıl düzgün şekilde bölünür). Veri işleme aracı bir veritabanıdır.
Üç masa. Bir tabloda iki sütun vardır: meyve kimliği ve adı. Diğerinde iki sütun vardır: mülkün kimliği ve adı. Üçüncüsü iki sütuna sahiptir: meyve kimliği, özellik kimliği.
Sonuç olarak, sonsuz sayıda yeni özellikler eklemek, bunları meyvelere atamak ve böylece herhangi bir yeni meyve elde etmek mümkündür.
Problemi çözmenin araçları probleme uygun olmalıdır.
Peter, buna denir: kendi beynini becermek - aşılmaz zorluklarla ortaya çıkmak. Görevi somutlaştırmak ve bunun için sınıflar yapmak gerekir.
Neden bir ara sınıf "narenciye" tanıtalım? Belki de sorun, dinamik listeye "narenciye" özelliğinin eklenmesiyle çözülebilir.
Bırak olsun.
Peki ya iki nesnenin özelliklerinin kesişmesi, yeni bir nesne oluşturması? Yeni nesne, diğer ikisinin özelliklerini kısmen devralır.
"Kısmi" mirası birden çok nesne (ebeveynleri) ile temel nesne arasında nasıl uygulanır?
Bırak olsun.
Peki ya iki nesnenin özelliklerinin kesişmesi, yeni bir nesne oluşturması? Yeni nesne, diğer ikisinin özelliklerini kısmen devralır.
Diğer birkaç nesneden "kısmi" mirası nasıl uygulanır?
Bu özel problemi çözmek için uygun algoritmanın uygulanması.
OOP, belirli bir bakış açısından birbirine nasıl karşılık gelirse gelsin, çevreleyen dünyayı tanımlamanın bir yolu değil, bir programlama aracıdır.
Ve bu. OOP tamamen aynı bir programlama aracıdır, verilerle çalışmanın bir yolu değildir (nasıl düzgün şekilde bölünür). Veri aracı bir veritabanıdır.
Üç masa. Bir tabloda iki sütun vardır: meyve kimliği ve adı. Diğerinde iki sütun vardır: mülkün kimliği ve adı. Üçüncüsü iki sütuna sahiptir: meyve kimliği, özellik kimliği.
Sonuç olarak, sonsuz sayıda yeni özellikler eklemek, bunları meyvelere atamak ve böylece herhangi bir yeni meyve elde etmek mümkündür.
Problemi çözmenin araçları probleme uygun olmalıdır.
Mülkiyetle ilgili değil, mirasla ilgili. Yani - nesneler arasında özelliklerin ve yöntemlerin dağılımında.
Yeni nesneler, eski nesnelerin özelliklerini farklı kombinasyonlarda bağlayacak ve bu da zincirlerinin karmaşıklığını temel nesneye artıracaktır.
Mülkiyetle ilgili değil, mirasla ilgili. Yani - nesneler arasında özelliklerin ve yöntemlerin dağılımında.
Yeni nesneler, eski nesnelerin özelliklerini farklı kombinasyonlarda bağlayacak ve bu da zincirlerinin karmaşıklığını temel nesneye artıracaktır.
Nesnelerin kendileri bunu yapmayacaktır. Veritabanından bu meyvenin özelliklerini, başka bir meyvenin özelliklerini seçiyorsunuz, birleştiriyorsunuz (bir şey bırakın, bir şeyi atın) - yeni bir meyve alırsınız - veritabanına eklersiniz.