مقدمه

پیش از این راجع به Bad Smell و کاربرد آن در مهندسی نرم افزار صحبت کردیم "تغییرات واگرا" یکی از 22 نوع Bad Smell میباشد.

نحوه تشخیص و معرفی راه حل تغییرات واگرا
ما نرم افزار را طراحی میکنیم تا تغییرات ساده تر شوند. وقتی میخواهیم یک تغییر را اعمال کنیم انتظار داریم که به یک نقطه مشخص در سیستم برویم و تغییر را انجام دهیم.  وقتی شما نمیتوانید اینکار را انجام دهید به یکی از دو بوی مشابه رسیده اید.
تغییرات واگرا وقتی اتفاق می افتد که یک کلاس در روش های مختلف برای دلایل مختلف تغییر میکند اگر شما بعد از ساخت یک کلاس با خودتان بگویید “خب من این سه تابع را وقتی یک دیتا بیس جدید گرفتم تغییر میدم و هربار یک حالت جدید پرداخت بوجود آمد باید این چهار تا متد را تغییر بدهم" به احتمال قوی در یک شرایطی هستید که دو کلاس بهتر از یک کلاس هست. به این طریق هر شی فقط برای یک نوع خاص تغییرات تغییر داده میشود. هر تغییر برای یک تحول سیستم میبایست در یک کلاس انجام شود و تمام کد های موجود در کلاس جدید باید تحول را بیان کند. برای پاکسازی این مشکل شما باید تغییر برای یک مورد خاص را شناسایی کرده و از روش استخراج کلاس برای قرار دادن آنها کنار هم استفاده کنید.