Birliktelik, Münasebet ve Oluşum (Association, Aggregation and Composition)
Yazan : Şadi Evren ŞEKER
Bilgisayar bilimlerinde sistem modelleme ve mimari tasarım sırasında sıkça kullanılan ve genelde birbirine karıştırılması kolay olan konulardır. Özellikle nesne yönelimli programlama (object oriented programming) konusundaki gelişmelerle birlikte kullanılan UML modellerinde nesneler ve sınıflar arası ilişkilerde sıkça rastlanmaktadır.
Temel olarak birliktelik ve münasebet ilişki türleri birer oluşum çeşidi olarak düşünülebilir. Yani oluşum (composition) elde etmek için verilerimiz veya nesnelerimiz arasında kurabileceğimiz ilişki türleri birliktelik (association) veya münasebet (aggregation) olabilir.
Bu iki ilişki türünün arasındaki en temel fark ise birisinin verileri kendi içinde barındırması diğerinin ise atıfta bulunmasıdır.
Örneğin münasebet (aggregation) ilişkisinde bir nesneden diğer nesneye atıfta bulunulur. Bu durum bir ders ile öğrenci arasındaki ilişkiye benzer. Dersin bitmesi ve ders nesnesinin (object) yok olması durumunda bu dersi alan öğrencilerin varlığı devam eder.
Tersi bir örnek bir ev ile odaları arasında kurulabilir. Yani nasıl bir önceki örnekte dersi alan öğrenciler varsa (dolayısıyla dersin öğrencileri varsa) ev’in de odaları vardır. Ev nesnesinden odalara atıfta bulunan bir değişken benzer şekilde tanımlanır. Ancak bu sefer farklı olan ev nesnesinde bu objelerin yaşıyor olmasıdır ve ev yok olursa oda objelerinin de yok olacağıdır.
Bu durum C++ gibi dillerde gösterici (pointer) kullanılarak çözülebilir. Yani ilk örnekteki münasebet ilişkisi için ders nesnesinden öğrenci nesnelerine birer gösterici tanımlanabilir.
Birliktelik ilişkisi içinse ev nesnesinin içerisinde odalar tanımlanmalıdır.
« String Tokenizer ( Dizgi Parçalayıcı ) | İşlem Çatallanması (Process Forking) »
Yorumlar
Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Birliktelik, Münasebet ve Oluşum (Association, Aggregation and Composition)' isimli yazı 20 Dec 2008 tarihinde, saat: 01:44 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 488 defa okunmuştur.
Benzer yazıları Yazılım Mühendisliği (Software Engineering), bilgisayar felsefesi 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
- 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)
- C ile Programlamaya Giriş Quiz Soruları ve Çözümleri
- LZW Sıkıştırma algoritması
- Mere Paradoksu (Mere’s Paradox)
Yapılan Son Yorumlar
- tolga: sanırım yazınız eksik!
- oguz: teşeküürler. güzel bir anlatım olmuş....
- Şadi Evren ŞEKER: haklısınız, hatayı düzeltip...
- Şadi Evren ŞEKER: evet logn ‘dir ve logaritmanın...
- Yaman: taman sanırım buldum, O(logn)
- Yaman: Merhabalar hocam, B-Tree’de arama işleminin...
- Yücel: Bilgiler için teşekkürler. Anlatılanlara...
- Şadi Evren ŞEKER: haklısınız hatalı...
- mehdi: Matematiksel olarak iki tam sayının ortak...
- Şadi Evren ŞEKER: Cümleyi farklı anlamış olmanızı...
- Linker: Teşekkürler faydalı bir çalışma fakat son...
- özlem: ellerinize sağlık… çok faydalandım ve...
- Gokay: Peki biz bu convex poligonları dışbukey...
- ern: yeniboyu tanımlarken hata yapmışım.
... - ern: 4. sorunun 27. satırındaki if’deki...
- Banshee: hocam bu kodu ilk açtığım zaman sorunsuz...
- Fatih Kabakci: int b=filter(a,6,buyuk);...
- Fatih Kabakci: int tek(int x){ if(x%2==1) return 1; else...
- student: Tşk ederim Türkçe kaynağı az bulunan konu...
- cansu: Bu avl agacına c de yazılmış bi örnek kod...
Yakın Yazılar
Birliktelik, Münasebet ve Oluşum (Association, Aggregation and Composition)
Oluşum (Composition) ve Struct (yapılar)
Paralel Diziler (Parallel Arrays)
Seçerek Sıralama (Selection Sort)
Yığınlama Sıralaması (Heap Sort)
Anlamsal Ağlar (Semantic Network)
Birleştirme Sıralaması (Merge Sort)
Sayarak Sıralama (Counting Sort)
Bağlantılar