در اکثر آموزش های Redux برای پیاده سازی Reducer ها همچین شکلی پیشنهاد میشه:
استفاده از switch case برای بررسی حالت های مختلف نسبتا منطقیه ولی با بیشتر شدن حالات به مرور تکرار کد زیاد و خوانایی کد کم میشه. شاید اولین راه حلی که به ذهنمون برسه این باشه که برای هر کدوم از شرط ها یه متد جداگانه تعریف کنیم و عملیات هر کدوم رو به متد خودش انتقال بدیم :
خب تا حدودی بهتر شد.حالا چطور از شر اون switch case راحت شیم و هوشمندتر عمل کنیم؟ یه object از حالت های مختلف میسازیم که شامل حالت default با مقدار state => state باشه و Reducer ما بتونه با یه if یه خطی حالت مورد نظر رو از توش پیدا کنه :
به همین سادگی و با پیاده سازی دیزاین پترن استراتژی تونستیم کدمون رو خواناتر کنیم!
این فقط یه خلاصه از یه نوشته دیگس, اصلش رو اینجا بخونین: