InventoryStrategy

صورت مساله

ما می‌خواهیم در یک سیستم انبارداری، بر اساس دو مکانیزم ورود و خروج، کالاهای داخل انبار را بر اساس زمان ورود کالا به انبار مدیریت کنیم. در این انبار شما چندین قفسه و دربرگیرنده کالا InventoryWrapper دارید که کالا ها Product را در آن قرار می دهید Add.

ما هر قفسه را بصورت یک آرایه قابل پیمایش دیده ایم که رابط IEnumerable را پیاده سازی کرده و کالا ها را در خود جای داده است. برای پیمایش کالاهای داخل قفسه هم دو رویکرد پیمایش LIFO و FIFO را مد نظر قرار داده ایم. شما ابتدا باید ساختار کلاس دربرگیرنده کالاها را تکمیل کنید، و بعد از آن رویکردهای پیمایش Enumerator را برای استراتژی‌های عنوان شده پیاده‌سازی نمایید.

راهنمایی
  • در استراتژی FIFO، محصولاتی که زودتر از بقیه وارد قفسه شده‌اند، ابتدا پیمایش می شوند.
  • در استراتژی LIFO، محصولاتی که دیرتر از بقیه وارد قفسه شده‌اند، ابتدا پیمایش می شوند.
نکته

ساختار تعریف شده نیاز به اضافه کردن هیچ کلاس یا نوع جدیدی ندارد. شما می‌توانید خود یک نمونه پیاده در کلاس program.cs داشته باشید، اما تست‌کیس‌های نوشته شده با عملکرد کلاس‌ها و توابع شما کدها را می‌سنجند.