جاوا

جلسه ۴۶: رابطه Aggregation در جاوا

در این درس ، با روش جدیدی برای پیوند دادن کلاسهای مختلف آشنا خواهید شد. موارد زیر را بیان خواهیم کرد:

  • طول عمر مستقل
  • مثال

Aggregation از مدل has-A پیروی می کند. این یک رابطه والد و فرزند بین دو کلاس ایجاد می کند ، در حالی که یک کلاس مالک شی کلاس دیگر است. بنابراین ، چه چیزی aggregation را منحصر به فرد می کند؟

طول عمر مستقل

در aggregation ، طول عمر شی متعلق به عمر مالک بستگی ندارد.

شی مالک می تواند حذف شود ، اما شی متعلق به آن می تواند در برنامه وجود داشته باشد. در aggregation، والد فقط حاوی اشاره گری به فرزند هست که وابستگی فرزند را از بین می برد.

از تصویر بالا احتمالاً می توانید حدس بزنید که برای پیاده سازی aggregation به ارجاعات شی نیاز داریم.

مثال

از مثال افراد و کشور آنها استفاده می کنیم. هر شخص با یک کشور در ارتباط است ، اما کشور بدون آن شخص می تواند وجود داشته باشد:

class Country {
  
    private String name;
    private int population;

    public Country(String n, int p) {
      name = n;
      population = p;
    }
    public String getName() {
      return name;
    }
  
}

class Person {
  
    private String name;
    private Country country; // An instance of Country class

    public Person(String n, Country c) {
      name = n;
      country = c;
    }

    public void printDetails() {
      System.out.println("Name: " + name);
      System.out.println("Country: " + country.getName());
    }
  
}

class Main {
  
  public static void main(String args[]) {
    Country country = new Country("Utopia", 1);
    {
      Person user = new Person("Darth Vader", country);
      user.printDetails();
    }
    // The user object's lifetime is over

    System.out.println(country.getName()); // The country object still exists!
  }
  
}

همانطور که می بینیم ، شی country (کشور) حتی پس از خارج شدن از محدوده متغیرuser (کاربر) ، همچنان وجود دارد. این رابطه ای با اتصال ضعیف بین دو کلاس ایجاد می کند. در جلسه بعدی ، با روش دیگری برای ارتباط اشیا در جاوا آشنا خواهید شد: رابطه composition.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا