Aynı üye isimlerine sahip olmanın bu durumda kötü bir fikir olduğuna inanıyorum, çünkü kodu daha fazla hataya açık hale getiriyor.
Senaryoyu hayal edin: birkaç kartezyen noktanız var: pntA ve pntB. Öyleyse, bir nedenden ötürü, kutupsal koordinatlarda daha iyi temsil edilmeleri gerektiğine karar verirsiniz ve bildirimi ve yapıcıyı değiştirirsiniz.
Şimdi, tüm işlemleriniz sadece yöntem çağrılarıysa:
double distance = pntA.distanceFrom(pntB);
o zaman iyisin. Peki ya üyelere açık bir şekilde kullandıysanız? Karşılaştırmak
double leftMargin = abs(pntA.x - pntB.x);
double leftMargin = abs(pntA.first - pntB.first);
İlk durumda, kod derlenmeyecek. Hemen hatayı göreceksiniz ve düzeltebileceksiniz. Ancak aynı üye adlarına sahipseniz, hata yalnızca mantıksal seviyede olacaktır, tespit edilmesi daha zordur.
Nesne yönelimli olmayan bir dilde yazarsanız, fonksiyona yanlış yapıyı iletmek daha da kolaydır. Aşağıdaki kodu yazmanızı engelleyen nedir?
double distance = calculate_distance_polar(cartesianPointA, polarPointB);
Öte yandan, farklı veri türleri derleme sırasında hatayı bulmanızı sağlar.