OOP uzmanları için soru. - sayfa 25

 
Igor Makanu :

OOP kavramının kendisi sadece yazmamayı ima eder - yöntemin uygulamasını bilmenize gerek yoktur (örneğinizde, return(SymbolSelect(m_name,select)))

bu satır yerine şunu hayal edin:

çok sayıda istek, çeşitli kontroller vb. gerçekleştirmeniz gerekiyor. - kendi kitaplığınızı yazmanız ve materyalin kendisini incelemeniz zaman alacaktır

Görevinizin yalnızca bir sınıf biçiminde hazır bir çözümün yöntemini kullanmaya başlamasına izin verin - sınıfın (nesnenin) bir örneğini oluşturursunuz ve hazır Select (const bool select) yöntemini kullanırsınız

Daha fazla bu tür işlemlerin yapılması gerekmiyorsa, boş hafıza = nesneyi yok et

Göreviniz, piyasa saatinde sembolü etkinleştirdiğiniz / devre dışı bıraktığınız bir düğmeye basarak bir düğmeyi görüntülemeye indirgensin ---> kendi sınıfınızı oluşturun ve hazır düğme sınıfını ve hazır CSymbolInfo sınıfını içine alın - tüm görev çözüldü

OOP paradigması, yalnızca sınıfla neler yapabileceğiniz hakkında genel bilgi verir - CSymbolInfo'yu kapsüllemek istemiyorsanız - peki, sınıfınızı ondan alın

İnanıyorum, anlamıyorum ve kabul etmiyorum. İşte o zaman, tüm bu ıslıklar ve ıslıklar olmadan yapamayacağınız belirli bir görev olacak, o zaman "zihinde aydınlanma" ve anlayış gelecek. Ve şimdiye kadar, benim açımdan, sadece modaya uygun çanlar ve ıslıklar her zaman haklı değildir . Her zaman değil, asla anlamına gelmez. Ctrade sınıfını zevkle kullanıyorum ancak yukarıda belirtilenleri kabul etmiyorum. Belgelerde SymbolSelect işlevinin tanımını bulmak zor değilse, Güvenlik Konseyi'nde zaten bir açıklama bulmak benim için belirli zorluklardır.

Igor Makanu :

Not: "parmaklarda" ise , OOP'nin özü , uygulamayı bilmeden göreve hızlı bir çözümdür

Bu durumda, uygulamayı bilmek yerine, istenen yöntemi nasıl çağıracağınızı, nerede arayacağınızı vb. bilmeniz gerekir. Bu nedir? bir programlama dilinde bir tür dil?

Bir projede bir nesnenin birkaç örneğine ihtiyacınız olup olmadığını anlayabilirsiniz. Ancak şimdiye kadar Artyom'un daha önce bahsedilen gösterimi dışında bu tür uygulamalar görmedim. Bu durumda, bunun daha iyi, daha kolay, daha basit olduğu açıktır, ancak tam olarak işe yaramazlık, görev eksikliği nedeniyle tam bir anlayışa ulaşamadım. mql5 dil işlevinin tek bir kullanımı uğruna, bir nesneyi sarmak mantıklı değildir. Ben böyle tartışırım.

 
Alexey Viktorov :

Bu durumda, uygulamayı bilmek yerine, istenen yöntemi nasıl çağıracağınızı, nerede arayacağınızı vb. bilmeniz gerekir. Bu nedir? bir programlama dilinde bir tür dil?

belgelere bakın, herkese açık olarak yayınlanan her şeye kılavuzlar eşlik ediyor, tabiri caizse, etik

Bu bir tarz değil, bir paradigma! - kavram, görgü, kimse seni böyle yazmaya zorlamaz ama nedense bu en yaygın üslup

 
Igor Makanu :

OOP'nin özü , uygulamayı bilmeden soruna hızlı bir çözümdür

Veri içeren bir yapıyı ona ileterek bir fonksiyon çağırabilir ve bu fonksiyonun uygulamasını bilmeden eşit derecede hızlı bir çözüm elde edebilirsiniz.
 
Alexey Navoykov :
Veri içeren bir yapıyı ona ileterek bir fonksiyon çağırabilir ve bu fonksiyonun uygulamasını bilmeden eşit derecede hızlı bir çözüm elde edebilirsiniz.

evet, ancak yönteminiz bu konuda sınırlı olacak, OOP'ta da miras alabilirsiniz - uygulamayı bile bilmeden ve görevinize ekleyin, akla ilk gelen yuvarlak kenarlı bir Düğme, içinde bir araba var örnekler ağı

Not: Peki, bir nesneyi yapıcılar aracılığıyla dağıtmanın mantığı oldukça uygun bir şeydir

 
Реter Konow :

Sınıf, bir nesnenin açıklamasıdır. İyi. Bir nesnenin özelliklerini ve işlevselliğini içerir. TAMAM. Bütün bunlar emredilir, açılır veya korunur.

O zaman NESNE KENDİSİ perde arkasındadır. Sınıf bağlamındadır. Adı ve açıklaması bağlamında. Yani, OOP'de bir Nesne, adlandırılmış bir nitelikler kompleksidir (yalnızca özellikler değil, aynı zamanda işlevsel öğeler - yöntemler), ancak benimkinden daha düzenli ve kapsüllüdür. (Bu benim için daha net hale getiriyor.)

Peter, nihayet sınıflar, bellek tahsisi bağlamında ne oldukları, yöntem çağrıları, yani derleyicinin tüm bunları neye dönüştürdüğü hakkında google. Soruların çoğu bundan sonra kendiliğinden kaybolacaktır.
 
Petros Shatakhtsyan :

Her şeyi anlamak için kitap okumak gerekir. 21 günde en az VC++.

MFC'yi ilk kez kullanmanızı, CDialog tabanlı bir windows uygulaması oluşturmanızı, her türlü nesneyi oluşturmanızı ve bunların ne kadar kolay yönetildiğini görmenizi tavsiye ederim.

Ondan sonra fikrinizi çöpe atacaksınız. Ne yazık ki.

Pek olası değil. Gerçek şu ki, yaklaşımım ve OOP arasında çok az kavramsal farklılık buldum. Benim yaklaşımım da nesne yönelimli. Nesneler çekirdekte kapsüllenir ve çok özel bir temsili vardır. İşaretçilerle birbirine bağlanırlar, kompleksler oluştururlar - elemanlar, pencereler ... Grafiklerin ötesine geçerseniz ve daha fazla çeşitlilik içeren farklı bir çekirdek formu yaratırsanız, OOP'den daha kötü olmayacak.

Yaklaşımlardaki fark, kod yazma tarzında, sözdizimi ve işlevsellik dağıtım yöntemlerindedir. Benim yaklaşımımda, işlevsel, OOP'de - parçalanmaya birleşme eğilimindedir. Aynı zamanda, işlevselliğin birleştirilmesinin, sistemin verimliliğini ve az miktarda sözdizimini artırması garanti edilir ve işlevselliğin parçalanması, kodun taşınabilirliğini kolaylaştırır. Modülleri bağlamanızı sağlar. Kısaca farklar bunlar.

Tabii benim yaklaşımım henüz bu kadar geniş bir "nesnelliğe" sahip değil. Ancak, zaten nasıl düzelteceğime dair fikirlerim var. Çekirdek tek tiptir ve bu, içinde depolanan özellikleri sınırlar, ancak çekirdeğin tek bir matris olması gerekmez. Bir çekirdek kompleksi olabilir. Ana avantaj, uzun bir açıklama, ek sözdizimi ve işlevsel bölme gerektirmeyen nesnelerin dijital temsilidir.

Ancak, OOP benim için çok ilginç. ondan öğreneceğim.
 
Vladimir Simakov :
Peter, nihayet sınıflar, bellek ayırma bağlamında ne oldukları, yöntem çağrıları, yani derleyicinin tüm bunları neye dönüştürdüğü hakkında google. Soruların çoğu bundan sonra kendiliğinden kaybolacaktır.
İyi. kesinlikle google'a girerim
 

OOP kavramı hakkında çok düşündüm ve şu:

Sözdizimi ve teknik terimlerden soyutlayarak "Sınıf", "Nesne", "Özellik", "Kapsülleme", "Polimorfizm", "Kalıtım" kavramlarını bırakıyoruz. Kavramın felsefi "kökünü" tanımlayacağım.

Gerçeklik, "Uzay", "Zaman" ve "Madde" prizmaları aracılığıyla bilinç tarafından algılanır (duyu organları böyle çalışır) ve "Nesne" onların sürekli etkileşiminin ayrı bir sonucudur.

Etkileşim biçimlerinin çeşitliliği, bilinçsiz özne tarafından belirli bir "çerçeve" üzerine "implante edilen" çeşitli nesneler üretir. Bu çerçeve dallanan, basamaklı bir yapıya sahiptir ve bilinçaltında "gömülüdür", onun "arketiplerinden" biridir. Çerçeve, yapısı üzerinde dağıtılan daha fazla yeni nesne (onlar hakkında bilgi) alır. OOP kavramının geldiği yer burasıdır. Bu, bilinçdışının "algoritmasını" taklit eden nesnelerin bilinçli bir dağılımı ve bağlanmasıdır. Kendi düşünme yöntemlerine hakim olan bir özne, çalışmasını beynin bir "aydınger kağıdı" olan bir mekanizma - bir bilgisayar - içinde modelleyebilir. Bilgisayarın beynin sefil bir parodisi olmasına izin verin, ancak kişinin kendisi yalnızca nesnel dünyanın gölgelerini algılar. Basamaklı, dallanan bir arketip, nesnelerin, özelliklerin, süreçlerin ve genel olarak tüm bilgilerin hafızamızdaki dağılımının bir "modelidir". Bu, çevredeki dünyanın modelini yapılandırarak gerçeklik algısını basitleştirmek için biyolojik bir araçtır. Bu bize doğa tarafından verilmiştir. Kişinin kendi "doğal" (yani bilinçsiz) bilgi işleme mekanizmasının farkındalığı, OOP'yi kullanmak için gereken öz farkındalık düzeyidir.

Ezberlemeyi, öğrenmeyi ve algılamayı kolaylaştıran bu örtük, biyolojik, "ağaç" arketipini "yapay" uygulaması bağlamında düşünün. OOP'de, özelliklerini ve değerlerini belirlediğimiz sınıflarda tanımlarını kapsülleyerek nesneleri "üretiyoruz". Nesnelerin ilişkileri, sınıflandırmalarına yansıtılır ve özelliklerin ve yöntemlerin globalden özele aktarılması yoluyla uygulanır. Pratikte şöyle görünür: her özel nesne yalnızca bir nesnedir ve bu nedenle basit bir nesnenin tüm özelliklerine + kendi özel özelliklerine sahiptir. Ondan türetilen nesneler, genel özellikleri olarak kendi özel özelliklerine sahip olacak, ancak kendi özel özelliklerine sahip olacaktır. Ayrıca, zincir sonsuza kadar gidebilir ve dallanabilir. Nesne yöntemleriyle aynıdır. Yöntem, durumların eylemini, etkileşimini, sürecini, değişimini yansıtır. Nesne yöntemleri, tıpkı özellikler gibi, genelden özele doğru sıralanır. Belli bir genel süreç varsa, o zaman onun ayrık biçimlerinin her birinin kendine has özellikleri ve kendine has özellikleri olacaktır. Ve bu polimorfizmdir. Yani, aşırı yüklemeden farklı olarak, polimorfizm, temel mekanizmasını korurken, temel işlevin farklı bir özel uygulamasını sağlar. Bu "işlevsel" kalıtımdır.

Gördüğümüz gibi, OOP'de "ağaç benzeri" her yerdedir. Hangi planla gelirsen gel, yine de bir "ağaç" elde edeceksin.)) Ama bu doğru, çünkü bilgi ile çalışırken sadece kendi bilinçsiz kalıplarımızı kopyalıyoruz.

 
Реter Konow :

OOP kavramı hakkında çok düşündüm ve şu:

...

Teneke.

Peter, acilen siyasete girmen gerekiyor. Burada bu tür yetenekler talep edilmiyor - çok şey söylemek, akıllıca ve anlaşılmaz bir şekilde ve hiçbir şey hakkında.

 
Artyom Trishkin :

...

Açıklamama izin ver. Sonuç olarak, OOP, hafızamızdaki bilinçsiz bilgi dağılımını çoğaltır. Bilgi "ayrışmış" basamaklıdır ve "ağaç gibidir". Bu, bilinçdışının arketipinden (gizli mekanizma) kaynaklanmaktadır. İnsanlar bu mekanizmayı "el yordamıyla aradılar" ve onu programlamada başarıyla uygulamaya başladılar. OOP, kalıtım zincirleri boyunca ortak özelliklerin ve işlevlerin transferini bilinçaltımızla aynı şekilde uygular.


Bilincimizin ve bilinçdışımızın çalışma prensibini daha iyi anlayarak, çalışmalarının mekanizmasını bir bilgisayarda yeniden üretebileceğiz. Teknik ayrıntılardan biraz uzaklaştım ve konseptin kökenine baktım.