Münasebet (Aggregation)
Yazan : Şadi Evren ŞEKER
Nense yönelimli programlama mantığında kullanılan bir terimdir. Bu terime göre iki nesne arasında ilişki kurulurken seçilebilecek yöntemlerden birisi de münasebet(aggregation) ilişkisidir.
Örneğin bir şirketin çeşitli birimleri olabilir. Örneğin muhasebe, satın alma, yönetim gibi birimler şirkete bağlıdır ve yanlızca bir şirkete bağlı olabilirler.
Ayrıca bu birimlerde çalışan kişiler de bulunur. Dolayısıyla birimler ile kişiler arasında da bir ilişki vardır.
Şayet şirket kapanacak olursa, birimler anlamını yitirir ve artık bu birimlerin varlığından söz edilemez. Ancak bu birimlerde eskiden çalışan kişiler varlığına devam eder, ayrıca bu kişiler şirket varken de birden fazla birimde veya şirkette de çalışabilmektedir.
Bu örnekte şirket ve bağlı birimlerini bir oluşum (composition) şeklinde düşünmek gerekir. Buna mukabil birimleri bağlı kişiler ile birimler arasında da bir münasebet bulunmaktadır.
Daha teknik anlamda münasebette olunan nesneleri gösteren birer gösterici (pointer) bulunur. Oluşumda (composition) ise varlıklar bizzatihi nesenenin içerisinde tanımlıdır.
C++ dilinde yazılmış aşağıdaki kodu inceleyelim (anlaşılsın diye Türkçe karakter kullanılmıştır):
class Çalışan; class Birim { ... private: // Münasebet (Aggregation) Çalışan* elemanlar[5]; ... }; class Şirket { ... private: // Oluşum (Composition) Birim bölümler[20]; ... };
Yukarıdaki örnek kodda da görüldüğü üzere münasebette olan nesneler atıf (gösterici,pointer) ile bağlanırken, oluşumda olan nesneler doğrudan sınıfın içerisinde tanımlanmıştır ve nesnenin yaşamının sona ermesi durumunda yok olacaktır.
Bilindiği üzere JAVA gibi dillerde gösterici yoktur ancak bunun yerine nesne atıfı (object referrer) yapısı bulunmaktadır.
« Çevirici (Assembler) | Aritmetik Ortalama (Average , Mean) »
Yorumlar
Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Münasebet (Aggregation)' isimli yazı 17 Nov 2008 tarihinde, saat: 01:17 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 596 defa okunmuştur.
Benzer yazıları C/C++, JAVA, Nesne Yönelimli Programlama, Programlama Dilleri kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.
Yazarın Kitabı
Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
- Visual Basic ile Gösterici (Pointer) Kullanımı
- Hasse Çizgeleri (Hasse Diagrams)
- Zeki Vekiller (Akıllı Ajanlar, Intelligent Agents, Zeki Etmenler )
- Integral Kriptoanalizi ( Toplam Tecessüsü , Integral Cryptoanalysis)
- Diferansiyel Kriptoanalizi ( Fark Tecessüsü , Differential Cryptoanalysis)
- Sierpinski Üçgeni (Sierpinski Triangle)
- C ile programlamaya giriş final sınavı çözümleri
- Çok Seviyeli Sıralar (Multi Level Queues)
- Çift Özetleme (Double Hashing)
- İkinci Dereceden Sondalama (Quadratic Probing)
Yapılan Son Yorumlar
- Şadi Evren ŞEKER: Null, NULL, nil veya null olarak...
- Fatih Kabakci: hocam merhabalar,...
- kara: Çok güzel anlatılmış gerçekten teşekkürler...
- Şadi Evren ŞEKER: Bahsettiğiniz şekil dönüşümü...
- Caner: Kullanıcıdan açı girdisi almıyorsanız...
- Furkan Yediyildiz: Algoritmanin mantigi cok güzel...
- havva: çok sağolun çok güzel açıklamalar var tşk...
- Şadi Evren ŞEKER: typedef komutu, bir yapıdan yeni bir...
- fatih kabakci: hocam ben structures ile ilgili bir sorum...
- Şadi Evren ŞEKER: evet, yukarıda açıklanan, herhangi...
- Abdurrahman ulusoy: fi açısından teta kadar döndürme...
- Şadi Evren ŞEKER: Hayır yok, bir noktanın, herhangi...
- Abdurrahman ulusoy: Bu durumda yukarıdaki formüllerin...
- Abdurrahman ulusoy: Merhaba hocam Üstteki mesajımda...
- mustafa ekmekcioğlu: merhaba şadi bey ben hacettepe...
- Şadi Evren ŞEKER: Talebiniz üzerine...
- Evren Kocaturk: ve bunu matlab üzerinde, gerekli...
- Evren Kocaturk: teşekkürler, işime yarayacak gibi,...
- tuncay çavuşoğlu: Şadi bey teşekkürler.Kısa ve...
- attila: hocam bunun bir örneginide Visual Basic diliyle...
Yakın Yazılar
Bağlantılar