Kimlik (nesne yönelimli programlama) - Identity (object-oriented programming)
Bir kimlik olarak nesne yönelimli programlama , nesneye yönelik tasarım ve nesne yönelimli analiz özelliği tarif nesnelerin diğer nesnelerden ayırır. Bu, felsefi kimlik kavramıyla yakından ilgilidir .
Kimlik ve referanslar
Bir referans belirli bir kimliği olan bir nesneye atıfta kullanılabilir. Referans, kimlik özelliğinin programlama dilinde gerçekleştirilmesi için gerekli olan bilgileri içerir ve kimliğe sahip nesneye erişime izin verir. Bir referansın hedefi türü bir roldür. Tipik olarak, referanslar bellek adreslerine izomorfiktir. Bununla birlikte, bir tür adres eşlemesi mevcutsa ( sanal adresler / sayfa tabloları / bellek bölümleri ) bu tür birden çok referans aynı nesneye başvurabilir .
Nesne kimliği, nesnelerin yapısının kapsüllenmediği ortamlarda veya durumlarda anlamsal bir kavram olarak daha az yararlıdır ve aslında aynı fiziksel örnek olmasalar bile, iki nesnenin aynı özelliklere sahip olması nedeniyle aynı nesne olduğu düşünülmektedir ( yapısal eşdeğerlik). Bununla birlikte, nesne kimliği yine de optimizasyon sağlayabilir. İki bağımsız değişkenin aynı nesne olup olmadığını test eden bir işlev, iki bağımsız değişken aynı kimliğe sahipse (aynı örneğe yapılan başvurularsa) olumlu bir yanıta hızlı bir şekilde kısa devre yapabilir. Yalnızca argüman farklı nesneler ise, eşitliği belirlemek için bireysel özelliklerin dikkate alınması gerekir ki bu daha pahalı bir işlemdir. Örneğin, bignum tamsayıları, aynı sayıyı temsil ediyorlarsa, iki bignumun aynı olduğu kabul edilecek şekilde yığın tahsisli nesneler olabilir. Eşitlik işlevinde, karşılaştırılan iki argümanın aynı bignuma referanslar olduğunun keşfinden yararlanmamak, makine döngülerinin israfı olabilir.
Kimliğin sonuçları
Nesnelerin kimliği, nesnelerin kara kutular olarak değerlendirilmesine izin verir . Nesnenin iç yapısını ortaya çıkarması gerekmez. Hala başvurulabilir ve diğer özelliklerine, kimlikle ilişkili dış davranışı yoluyla erişilebilir. Kimlik, arayüzde açığa çıkmayan nesnenin bu tür kısımlarına atıfta bulunmak için bir mekanizma sağlar. Bu nedenle kimlik, nesne yönelimli programlamada çok biçimliliğin temelidir .
Kimlik, referansların karşılaştırılmasına izin verir. Eşit olsun veya olmasın iki referans karşılaştırılabilir. Kimlik özelliği nedeniyle bu karşılaştırmanın özel özellikleri vardır. Referansların karşılaştırılması referansların eşit olduğunu gösteriyorsa, referansların işaret ettiği iki nesnenin aynı nesne olduğu açıktır. Referanslar birbirine eşit değilse, bu referansların arkasındaki nesnelerin kimliğinin farklı olduğu garanti edilmez. Aynı türden iki nesnenin nesne kimliği, nesnelerden herhangi birinde yapılan her değişiklik diğer nesnede de bir değişiklikse aynıdır.
Kimlik ve nesneye yönelik kavramsal model
Kimlik , genellikle nesne yönelimli düşüncenin temeli olarak kullanılan platonik ideal bir dünyanın, ontolojinin veya kavramsal modelin inşasına izin verir . Kavramsal model, bir etki alanına , terminolojiye veya bir API'ye yönelik istemci tarafı görünümünü açıklar . Bu dünya örnekler olarak nokta benzeri nesneleri , nesnelerin özelliklerini ve bu nesneler arasındaki bağlantıları içerir. Dünyadaki nesneler sınıflar oluşturacak şekilde gruplanabilir . Nesnelerin özellikleri, roller oluşturmak için gruplandırılabilir . Bağlantılar, ilişkilendirmeler oluşturmak için gruplandırılabilir . Dünyadaki tüm lokasyonlar, lokasyonlar arasındaki bağlantılar ile birlikte dünyanın yapısını oluşturur. Bu gruplar , dünyanın karşılık gelen örneklerinin türleridir .
Notlar
Ayrıca bakınız
- Meyer: Nesneye yönelik yazılım yapımı, ikinci baskı
- Nesne kimliği de Wayback Machine (2008 Mayıs 15 arşivlenmiş)
- Etki alanına dayalı tasarım : Bir varlık, kimlikle tanımlanır