پرش به مطلب اصلی

Anti corruption Layer pattern

تصور کن یه سیستم نرم‌افزاری ساختی که تمیزه، مرتب و به‌روز. اما حالا باید با یه سیستم قدیمی‌تر یا 3rd party ها ارتباط برقرار کنی. اگه مستقیم بری با اون سیستم حرف بزنی، کم‌کم مشکلات اون سیستم مثل داده‌های عجیب، مفاهیم اشتباه یا طراحی بد، وارد دنیای مرتب تو می‌شن. اینجاست که الگوی Anti-Corruption Layer یا همون ACL وارد می‌شه.

اACL یه لایه‌ی محافظ بین سیستم تو و اون سیستم بیرونیه. مثل یه مترجم باهوشه که اجازه نمی‌ده مفاهیم خراب وارد منطق نرم‌افزار تو بشن یا حتی اگه ولیدیشن نداشته باشی وارد دیتابیست بشه. حتی اگه داده‌ای که از بیرون میاد مشکل داشته باشه، ACL می‌تونه جلوش رو بگیره، اصلاحش کنه، یا اصلا اجازه‌ی ورود نده. بدون ACL، خرابی‌های اون سیستم مثل ویروس پخش می‌شن تو کل کدت ACL فقط یه جا باهاشون درگیر می‌شی

اACL جلوی خرابی رو نمی‌گیره، ولی باعث می‌شه خرابی رو کنترل‌پذیر و ایزوله نگه داری. این یعنی ساختن یه سیستم مقاوم، مستقل و قابل نگهداری، حتی وقتی طرف دیگه‌ی ماجرا اصلاً خوب طراحی نشده.