Fluent Interface سبکی از طراحی API است که امکان فراخوانی چند متد پشت سر هم را فراهم میکند. در این الگو، متدها معمولاً آبجکت جاری یا آبجکت قابل ادامه زنجیره را برمیگردانند.
زنجیرهسازی میتواند خوانایی را بهتر کند، اما زنجیرههای طولانی و دارای اثر جانبی پنهان ممکن است اشکالزدایی را دشوار کنند.
مثالی از مسیر اجرای برنامه
Fluent Interface اجازه میدهد فراخوانیها زنجیره شوند، مانند query()->where()->orderBy(). برای خوانایی خوب است، اما زنجیره طولانی با Side Effectهای پنهان میتواند عیبیابی را سخت کند.
زنجیرهسازی متدها چه شرطی دارد؟
در APIهای Fluent، متدها معمولاً همان آبجکت یا یک Builder تازه را برمیگردانند تا نوشتن chain امکانپذیر شود. اگر یکی از متدها نتیجه نهایی یا void برگرداند، ادامه زنجیره با همان قرارداد ممکن نیست.