Welcome to My Blog 👋

Java, Spring Framework, Microservices, Docker, Kubernetes, AWS and Others 🚀
Follow Me

Yazılım Mühendisliği - Aggregation ve Composition İlişki



  March 17, 2019    Labels:,,,,,,,,, 

Kodlama açısından Association ilişki ile aynı olan bu ilişki türü mantıksal olarak Association ilişkiden ayrılır. Bu ilişki türünde Association ilişkide olduğu gibi bir sınıf içerisinde başka bir sınıfın referansı tutulur. Ancak bu ilişkide referansı tutan sınıf ile referans edilen sınıf arasında bir parça bütün ilişkisi vardır. 
Bu iki ilişki türünde parçalar bütünü oluşturur. Yani referansı tutan sınıf bir bütündür ve referansı tuttuğu sınıflar onun parçalarını oluşturur. Aggregation ilişki ile Composition ilişki arasındaki fark ise Composition ilişkide parçalar oluşturdukları bütüne özeldir. Yani parça dahil olduğu bütünden ayrılıp bir başka bütüne dahil edilemez. Aggregation ilişkide ise parçalar bütünü oluşturur ancak o bütüne özel değildir bir başka bütün ile de kullanılabilir. Bir ilişkide parça bütün ilişki varsa ve Aggregation mı yoksa Composition ilişki mi kurulacak karar verilemiyorsa aşağıdaki üç soru sorularak cevap verilir.
  • Bütün nesne yok edildiğinde parça da yok ediliyorsa
  • Parça bir yere taşındığında bütün de onunla taşınması gerekiyorsa
  • Parça kolaylıkla başka bir bütüne dahil edilemiyorsa
bu ilişki Composition ilişkidir denir. Aksi halde Aggregation ilişkidir denir.

Aggregation ilişki çizimde bütünü oluşturan kısmın bulunduğu tarafa içi boş baklava şeklinde bir dikdörtgen çizilir.
Composition ilişki çizimde bütünü oluşturan kısmın bulunduğu tarafa içi dolu baklava şeklinde bir dikdörtgen çizilir.



Yukarıdaki örnekte Player sınıfı Organ sınıfının referansını tutar. Burada bir Composition ilişki vardır çünkü parça olmadan bütünün olması söz konusu değildir. Team sınıfı ise Player sınıfının referansını tutar. Burada bir Aggregation ilişki vardır çünkü oyuncu olmadan da bir takım var olabilir ve bir oyuncu kolaylıkla başka bir takıma dahil edilebilir.



No comments:

Post a Comment