Ders-22 OOP Nesneler Arası İlişki

Nesneler Arası İlişki (Association-Aggregation-Composition – Bağlantı-Toplama-Kompozisyon)

Nesneler arası ilişki türlerini veya bu kavramları bilmedende oop’de gayet güzel bir şekilde kod yazabiliriz ancak bunları bilmek işin felsefesini bize öğreterek bizi bir adım ileriye taşıyacaktır. Yazmış olduğumuz kodlarda nesneler kendi arasında bir iletişim-bağ kuruyorlar. Bu bağların farklı türleri olabiliyor. Bu derste bu türleri inceleyeceğiz.

Nesneler arasında terminolojik olarak nitelendirilebilir ilişki türleri mevcuttur. Bu ilişkiler; kalıtım, referans yahut soyutlama gibi durumların getirisi olan mantıksal izahatlerdir.

Nesneler arası ilişki türler:

  • is – a ilişkisi
  • has – a ilişkisi
  • can – do ilişkisi

is – a İlişkisi Nedir?

is – a ilişksisi tamamiyle kalıtımla alakalıdır. C# programlama dilinde, iki sınıf arasında ‘:’ operatörü ile gerçekleştirilen kalıtım neticesinde ortaya bir is – a ilişkisi çıkmaktadır.

Örnek Olarak

A is a B = A bir B’dir

Buradan A sınıfının B’den kalıtım almış olduğu sonucunu çıkartabiliriz.

a is a için nesnelerin arasında fiziksel(kalıtım) bir ilişki olmak zorundadır.

has – a İlişkisi Nedir?

Bir sınıfın başka bir sınıfın nesnesine dair sahiplik ifadesinde bulunan ilişkidir. Bir yandan kompozisyon/composition ilişkisi de denmektedir.

Örnek Olarak

A has a B = A’nın bir B’si vardır.

A sınıfının içerisinde B sınıfından bir nesne üretilmesidir.

can – do İlişkisi Nedir?

Interface yapılanmasının getirisi olan bir ilişki türüdür.

Kısaca Interface; bir sınıfın imzasıdır. Yani bir sınıfın içerisinde olacak olan tüm member’ların şablonunu/arayüzünü oluşturduğumuz bir kontrattır. Herhangi bir interface’i uygulayan class o interface içerisinde tanımlanmış member imzalarını kendisinde oluşturmak zorundadır. Aksi taktirde compiler hata vercektir.

Interface’ler içerisindeki member’ların imzalarını class’lara uygulattırdığından dolayı ı interface’ler ilgili nesnelerin yapabilecekleri kabiliyetleri göstermektedir.

can – do ilişkisi bir nesnenin davranışlarını/kabiliyetlerini belirtmektedir.

Bu davranış/kabiliyetlerin interface içerisinde tanımlanmaktadır.

interface ilişkisi baktığımızda, bu interfayi uygulayan nesneler bu özelliklere sahip olacaktır dememiz/okumamız can – do ilişkisidir.

Association Nedir?

Sınıflar arasındaki bağlantının zayıf biçimine verilen addır. Bu bağlantı oldukça gevşektir. Yani, sınıflar kendi aralarında ilişkilidir lakin birbirinden de bağımsızdırlar.

Parça – bütün ilişkisi yoktur.

Örneğin; bir otobüsteki yolcular ile otobüs arasındaki ilişki Association’dır. Nihayetinde hepsi aynı yöne gitmektedir. Lakin bir yolcu indiğinde bu durum otobüsün ve diğer yolcuların durumunu değiştirmez.

Aggregation ve Composition Nedir?

Nesneleri birleştirip daha büyük bir nesne yapmaya verilen isimlerdir. Yani her ikisi de birleştirilmiş nesnelerden bütünsel nesneler yapma durumlarını ifade eder.

Her ikisinde de Association’da olmayan parça – bütün ilişkisi söz konusudur.

Her ikisinde de sahiplik ilişkisi(has – a) vardır.

Aggregation ve Composition farkı

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir