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.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir