OOP vs prosedürel programlama - sayfa 9

 
Реter Konow :
Neden anlamadığımı anlıyorum, bu benim kodum değil, ayrıca bu sadece bir kısım. Ama sen de anlamamışsın gibi görünüyor - yoksa yanılıyor muyum?

işaretçi kullanmıyorum...

Önceden ben de sizin gibi sadece fonksiyonlarla çalışıyordum ama zamanla bunların bir şekilde saklanması ve daha sonra aranıp tekrar kontrol edilmesi gerekiyordu, her fonksiyon kendi ekstra eylemlerini yaptı.

Şimdi her şeyi sınıflar halinde yeniden oluşturdum ve Order sınıfını çağırdığımda ihtiyacım olan her şeyi ve mevcut yöntem işlevlerinin bir listesini alıyorum ...

 
Реter Konow :
Bu yüzden büyük genel kod blokları yapmayı seviyorum.

OOP'siz iyi bir GUI'nin yazarına bile inanamıyorum

Kod satırları kaydediliyor mu?!

 
СанСаныч Фоменко :

Hayır, örneğiniz çok iyi.

Bu prosedürel programlama ile ilgili değil.

Programın kalitesi için çok daha önemli bir kriter var: kodun görünürlüğü.

Verdiğiniz karar korkunç: Anlamlı işlevin NE denildiği kesinlikle açık değil. Normal bir geçiş yazar ve her aramaya karşı yorum yapardım. Bu doğru kod.

Örneğinizden, OOP'nin zararlı bir şey olduğu sonucuna varıyorum.


Ve sadece 1'inin kullanılacağı önceden biliniyorsa neden 100 seçenek için geçiş yapasınız ki?

Üç satır kodla karşılaştırıldığında, 100 değişkenli bir anahtardan bir ayak örtüsünün görünürlüğü nedir?

Rasyonel olarak, optimal olarak (hatta ideal olarak) yapılabilecek zor, hacimli ve yavaş bir şey yapmak doğru bir yaklaşım değildir.

OOP yalnızca yanlış kullanıldığında zararlıdır.

Bu yoruma tepki verin.

 
Реter Konow :
Bu yüzden büyük genel kod blokları yapmayı seviyorum.

Neden evrensel hale geliyorlar?

 
Dmitry Fedoseev :

Ve sadece 1'inin kullanılacağı önceden biliniyorsa neden 100 seçenek için geçiş yapasınız ki?

Üç satır kodla karşılaştırıldığında, 100 değişkenli bir anahtardan bir ayak örtüsünün görünürlüğü nedir?

Yapılabilecekleri rasyonel, optimal (hatta ideal olarak) zor, hacimli ve yavaş yapmak doğru bir yaklaşım değil - bu doğru bir yaklaşım değil.

Bu yoruma tepki ver


Bu bir ayak örtüsü değildir - bu, programın metniyle birlikte programın işlevselliği için bir belgedir. Bu en önemlisi, tek başına işe yarayacak bir şey değil

 
Vladimir Pastushak :

işaretçi kullanmıyorum...

Önceden ben de sizin gibi sadece fonksiyonlarla çalışıyordum ama zamanla bunların bir şekilde saklanması ve daha sonra aranıp tekrar kontrol edilmesi gerekiyordu, her fonksiyon kendi ekstra eylemlerini yaptı.

Şimdi her şeyi sınıflar halinde yeniden oluşturdum ve Order sınıfını çağırdığımda ihtiyacım olan her şeyi ve mevcut yöntem işlevlerinin bir listesini alıyorum ...

Senin için daha uygunsa, buna karşı hiçbir şeyim yok. Oldukça zengin programlama deneyimime göre, çözümlerinizi evrenselleştirme ve sıkıştırmayı uygularsanız, herhangi bir görevin OOP olmadan daha az verimli bir şekilde çözülebileceğini söyleyebilirim. Bu, büyük uygulama ile onaylanan bir deneyimdir. Belki de şu ya da bu yaklaşım, düşüncemizin bireysel özellikleriyle bağlantılıdır. Benim aktarmak istediğim ana fikir bu.
 
СанСаныч Фоменко :

Bu bir ayak örtüsü değildir - bu, programın metniyle birlikte programın işlevselliği için bir belgedir. Bu en önemlisi, tek başına işe yarayacak bir şey değil


Ve bir ayak örtüsü ve balast. Sinekler ayrı, pirzola ayrı olmalıdır. Dokümantasyon önemlidir, ancak programın önüne geçmemelidir.

 
Dmitry Fedoseev :

Neden evrensel hale geliyorlar?

Örneğin, grafik nesneleri birbirine göre kontroller oluşturarak konumlandıran bir bloğa ihtiyacınız var. Aynı zamanda, aynı blok nesnelerin görünümünü kontrol eder, yani bazılarını gizler ve bazılarını ortaya çıkarır. Ayrıca kaydırma tuvalinin boyutlarını ve pencerenin genel boyutlarını da hesaplar. Ayrıca kaydırma çubuğundaki kaydırıcının hareketini hesaplar. Bu, nesne ilişkilerinin evrensel bloğudur.


Veya pencere tutamağını tutarken pencerenin boyutunu kontrol eden bir blok. Veya kontrol durumlarını yöneten bir blok. Veya imlecin hangi öğede olduğunu hesaplayan ve aynı anda birçok global parametreyi odaklayan bir blok...

 
Реter Konow :
Örneğin, grafik nesneleri birbirine göre kontroller oluşturarak konumlandıran bir bloğa ihtiyacınız var. Aynı zamanda, aynı blok nesnelerin görünümünü kontrol eder, yani bazılarını gizler ve bazılarını ortaya çıkarır. Ayrıca kaydırma tuvalinin boyutlarını ve pencerenin genel boyutlarını da hesaplar. Ayrıca kaydırma çubuğundaki kaydırıcının hareketini hesaplar. Bu, nesne ilişkilerinin evrensel bloğudur.

Ancak bu if ve geçiş yoluyla mı uygulanıyor?

 
Dmitry Fedoseev :

Ancak bu if ve geçiş yoluyla mı uygulanıyor?

Evet, bu blokların her ikisi de var. Ama inan bana - çok çeşitli görevleri çözdükleri için maksimum ve evrensel olarak sıkıştırılırlar.