Şizofreni (nesneye yönelik programlama) - Schizophrenia (object-oriented programming)

Nesne şizofreni veya kendi kendine şizofreni ortaya çıkan bir komplikasyondur delegasyon ve ilgili teknikler nesne yönelimli programlama, nerede kendini/bu birden fazla nesneye başvurabilir. Metafor yoluyla, halkın kafa karışıklığı ile dissosiyatif kimlik bozukluğu psikiyatrik teşhisi ile şizofreni birincisi "bölünmüş kişilikler" ile ilişkilendirilir, bu konfigürasyona nesne şizofreni veya kendi kendine şizofreni nesne yönelimli programlamada.[1]

Genel Bakış

Bir nesne veri ve davranışı birleştiren ve bir kimliğe sahip bir bilgi işlem kavramı olarak tanımlanabilir. İçinde sınıf tabanlı programlama nesneler, bir nesnenin bir sınıfın bir örneği olduğu sınıf sistemleri üzerine kuruludur. Sınıflar sırayla ilişkilendirilebilir miras: a temel sınıf bir nesnenin temel veya varsayılan davranışını sağlar ve nesneler oluşturmak için bir şablon görevi görür. Türetilmiş sınıf bir temel sınıfın davranışlarını geçersiz kılmak için kullanılabilir ve davranışları temel sınıftakileri iyileştiren nesneler için bir şablon olarak kullanılabilir.

Sınıflara ve kalıtıma bir alternatif, prototipler ve delegasyon,[2] kullanılan prototip tabanlı programlama ve daha dinamiktir. Delegasyon, bir sınıfı diğerini iyileştirmek için kullanmak yerine, bir nesnenin diğerinin davranışını geçersiz kılmasına izin verir. Orijinal nesne a (türetilmiş sınıf davranışlarına benzer şekilde) temsilci yöntemlerinden bazılarını başka bir nesneye b (temel sınıf davranışlarına benzer). Eğer a delegeleri foo yöntemi bar yöntemi b, sonra herhangi bir çağrı foo açık a sebep olacak b 's bar yürütme yöntemi. Ancak, bar bağlamında yürütür a nesne, örneğin, kendini tanımlayıcı, a yerine b.

Yetkilendirme kullanıldığında şu soru ortaya çıkar: Değeri nedir? kendini nesne üzerinde bir yöntemi değerlendirirken a, nesne üzerindeki bir yönteme devredilen b? Kimlik bölünmüş: başvurabilir a veya b. İki nesne ayrı ve ayrı fiziksel kimliğe sahipken, kendini (ister açık ister örtük olarak kullanılsın) belirsizdir.

Tarih ve tartışma

Herrmann[3] bu terimin, IBM Research'ten William Harrison tarafından Mayıs 1997 civarında, bazı yaygın sorunların ortaya çıkardığı sorunları tartışan tasarım desenleri (bu web sayfaları artık halka açık değildir). Verilen örneklerde sorun, tipik çözümlerin daha zayıf bir biçim kullanması gerçeğiyle daha da kötüleşti. delegasyon (bazen aranır yönlendirme ) orijinal alıcı nesnesi hakkındaki bilginin delegasyon sırasında gerçekten kaybolduğu yer. İşte kullanımı yönlendirme çoğu ana akım olması gerçeğine borçludur. nesne yönelimli programlama dilleri daha güçlü delegasyon biçimini desteklemeyin Harrison ve diğerleri önerdi konu odaklı programlama Statik kompozisyon yoluyla nesne şizofrenisinin herhangi bir sorununu ortadan kaldıran bir çözüm olarak. Yelpazenin diğer ucunda, Herrmann, bağlamsal özelliğe sahip bir dilin roller Bir kişi arasında davranışı paylaşmanın bir yolu olarak delegasyonu kullanmasına rağmen, nesne şizofrenisinin potansiyel problemlerinin esasen alakasız olacağı şekilde tasarlanabilir rol nesnesi ve onunla ilişkili temel nesne.

Ayrıca bakınız

Referanslar

  1. ^ Uwe Aßmann, İstilacı Yazılım Bileşimi, Springer-Verlag, 2003, s. 39.
  2. ^ Lynn Andrea Stein, Delegasyon Mirastır. Nesne Tabanlı Programlama Sistemleri Dilleri ve Uygulamaları Konferansı, Orlando, Florida, 1987, Amerika Birleşik Devletleri, s. 138 - 146
  3. ^ Stephan Herrmann, Şizofreni Demistifiye Edici Nesne, Bildirilerinde MASPEGHI Atölyesi -de ECOOP 2010