همدستی (برنامه‌نویسی شیءگرا)

رابطه تداعی‌گری یا همدستی  در برنامه‌نویسی شیءگرا، یک رابطه بین کلاس‌های شیء را تعریف می‌کند، که به یک نمونه شیء اجازه می‌دهد تا باعث شود شیء دیگر، عملی را از جانب خودش انجام دهد. این رابطه ساختاری است، زیرا تعیین می‌کند که اشیای نوع خاص به اشیای نوع دیگر متصل هستند، اما رفتار را تعیین نمی‌کند.

علیت، در اصطلاح عمومی‌اش، برابر «ارسال یک پیام» یا «فراخوانی یک متد» یا «صدازدن یک عضو تابع» به یک شیء کنترل‌شده است. پیاده‌سازی واقعی همدستی معمولاً نیاز به یک شیء درخواست‌کننده دارد که یک «متد» یا «عضو تابع» را (از طریق یک ارجاع یا اشاره‌گر به محل حافظهٔ شیء کنترل‌شده) فراخوانی کند.

اشیایی که از طریق همدستی باهم مرتبط هستند، را اینگونه می‌توان تصور کرد که نسبت به همدستی‌شان یک «نقش»  را بازی می‌کنند، این موضوع وقتی رخ می‌دهد که حالت فعلی شیء (در وضعیت فعال)، به دیگر اشیاء همدست، امکان استفاده از شیء را به روش تعیین‌شده توسط نقش بدهد. از نقش می‌توان در تفکیک «دو شیء یک کلاس» موقعی که استفاده از آن‌ها را در زمینه همدستی توصیف می‌کنیم، استفاده کرد. یک نقش یا role، «جنبه‌های همگانی یا public» یک شیء در زمینه همدستی را توصیف می‌کند.

انتهای یک همدستی می‌تواند این مشخصات را داشته باشد:
 می‌تواند شامل فراوانی  باشد، که یک حد بالایی و یک حد پایینی دارد و در قالب «حدپایین..حدبالا» بیان می‌شود.
 می‌تواند شامل یک نام باشد.
 می‌تواند رویت‌پذیری را اعلام کند.
 می‌توان تعیین کرد که آیا انتهای یک همدستی منظم است و/یا یکتا است.

پانویس

منابع 
 

برنامه‌نویسی شیءگرا