فرض کنید کدی داریم که شامل تعداد زیادی دستور شرطی باشد، چگونه می توانیم با استفاده از مفاهیم شی گرایی آنها را حذف کنیم؟
اجازه دهید با یک مثال بررسی کنیم.
مثال: بازی را در نظر بگیرید که شامل خرگوش، خرس و لاکپشت باشد. با گذشت زمان می خواهیم بر اساس نوع مختلف حیوانات، سرعت هر کدام را افزایش دهیم. اما افزایش ها برای حیوانات مختلف، متفاوت خواهد بود. مثلا هر افزایش برای سرعت خرگوش 3 واحد و برای خرس 2 واحد و برای لاکپشت 1 واحد خواهد بود.
راه حل ابتدایی (استفاده از دستورات شرطی):
حالا فقط فکر کنید به محض زیاد شدن تعداد حیوانات، مدیریت این نوع کد یک کابوس خواهد شد.
برای حل مسئله فوق چه خواهیم کرد؟ چگونه همه شرط ها را از اینجا حذف کنیم؟
برای انجام این کار ابتدا باید درک کنیم که باید منطق افزایش سرعت را از متد بالا حذف کنیم و آن را در اشیاء مربوطه (حیوانات) قرار دهیم.
با این کار هر حیوان مسئول افزایش سرعت خود خواهد بود.
اکنون کد بسیار ساده و خواناتر شده و همه منطق به کلاس های مربوطه منتقل شده و شرط دیگری وجود ندارد.