The Abstraction-Occurrence Pattern
نگارش شده در تاريخ : یکشنبه, اردیبهشت ۲۰, ۱۳۸۸ و ساعت : ۱۹:۵۴
معمولاً در Domain Model، اشبائی مرتبط با هم، به شکل یک مجموعه(یا سری) یافت می شوند، که این اشیاء در یرخی اطلاعات با هم در اشتراک هستند، اما در سبک و سیاق متفاوت. به مجموعه این اشیاء اصطلاحاً، مجموعه تکرارپذیر و به هرشی از این مجموعه یک Occurrence یا یک تکرار(و شاید رخداد) گفته می شود. با آوردن مثالهایی تعریف مزبور روشنتر خواهد شد.
- اپیزودهای های یک مجموعه تلویزیونی، دارای یک کارگردان و یک نام هستند اما از داستانهای متفاوتی حکایت می کنند.
- پروازهایی که از یک مبدأ خاص، به یک مقصد مشخص و در یک زمان مشخص از روز حرکت می کنند، دارای شماره پرواز یکسان هستند، اما در روزهای متفاوتی اتفاق می افتند و البته با مسافران و خدمه ای متفاوت.
- نسخه های مختلف چاپ شده از یک کتاب در یک کتابخانه، دارای یک عنوان و نویسنده یکسان هستند، اگر چه نسخه های مختلف دارای بارکد متفاوتی بوده و توسط افراد مختلفی به امانت گرفته می شوند.
در طراحی چنین مجموعه هایی، مجبور هستید بدون Duplicate کردن اطلاعات مشترک، اعضای مجموعه تکرارپذیر را نمایش دهید و این اصلی است که باید رعایت شود.
الگوی Abstraction-Occurrence، روش مناسبی برای نمایش چنین مجموعه ای از تکرارهاست. در این الگو، یک کلاس «Abstraction» می سازید، که شامل اطلاعات مشترک تمامی اعضای تکرارهاست. پس از آن کلاس «Occurrence» را ایجاد می کنید که نماینده تکرارهای این Abstraction است. ارتباط این دو یک ارتباط (Association) و از نوع یک به چند است.

