Hossein Askari
Hossein Askari
خواندن ۱ دقیقه·۳ سال پیش

Dive into refactoring

#refactoring
#code_smells
#dive_into_refactoring
#Alexander_Shvets

Code Smells :

* Object-Orientation Abusers *

1) Switch Statements

‫شما یک عملگر switch پیچیده یا دنباله ای از دستورات if دارید. حالا برای ریفکتور کردن این قضیه راه های پیش رو ایناست :

- ‫اگر switch بر اساس type code باشه، مانند زمانی که حالت زمان اجرا برنامه تغییر می کند، میتونیم از sub class یا State/Strategy استفاده کنیم

- ‫پس از مشخص کردن ساختار وراثت، میتونیم به جای if یا switch از Polymorphism استفاده کنیم

- ‫اگر شرط های خیلی زیادی در operator وجود نداشته باشد و همه آنها یک متد را با پارامترهای مختلف فراخوانی کنند، Polymorphism اضافی خواهد بود. در این صورت، می‌توانید آن متد را با به چندین متد کوچکتر تقسیم کنید و switch را بر اساس آن تغییر دهید.

یه سری مواقع هم هست که خب باید از همون‫ switch استفاده کرد مثل وقتی که از switch توسط الگوهای (Factory Method یا Abstract Factory) برای انتخاب کلاس ایجاد شده استفاده می شوند.

‫نکته : اگر یکی از گزینه های شرطی null بود، از Null Object Pattern استفاده کنید?




programmingrefactoringcode smellsdevelopoop
Back-End Developer
شاید از این پست‌ها خوشتان بیاید