این مقاله به بررسی مفهوم Double Dispatch در طراحیمحور دامنهگرا (DDD) میپردازد. نویسنده استدلال میکند که تزریق رفتار به دامنهها، برخلاف برخی باورها، میتواند یک رویکرد مفید و DDD-friendly باشد. Double Dispatch به شیوه ای امکان می دهد که یک شیء (مانند Shipment) تصمیم گیری را به شیء دیگری (مانند یک سیاست زمان تحویل) واگذار کند. این کار با استفاده از رابطهای (Interfaces) و پیادهسازیهای مختلف سیاستها (Policies) امکانپذیر میشود. به عنوان مثال، سیاست StandardDeliveryTiming ممکن است زمان تحویل را با زمان فعلی مقایسه کند، در حالی که سیاست BufferDeliveryTiming ممکن است یک بافر زمانی را نیز در نظر بگیرد. این رویکرد به حفظ انعطافپذیری، قابلیت تست و جداسازی دامنهها از نگرانیهای زیرساختی کمک میکند. نویسنده با ارائه مثالهایی از کد، نشان میدهد که چگونه Double Dispatch میتواند به نوشتن کدهای قابلفهمتر و قابلتستتر منجر شود. در نهایت، این روش به دامنهها اجازه میدهد تا به عنوان نقطه ورود برای تصمیمگیری عمل کنند، در حالی که جزئیات پیادهسازی در سیاستها تعریف میشوند.
مشاهده مطلب اصلی