Chain of Responsibility Pattern (Nhóm hành vi)

Cho phép dữ liệu được truyền qua MỘT LOẠT các đối tượng xử lý trước khi ra được kết quả cuối cùng.

Lợi ích:

  • Phân chia trách nhiệm rõ ràng ra các Class riêng biệt
  • Tách biệt các bước xử lý

Nhóm hành vi (Behavioral Patterns): xử lý việc giao tiếp hiệu quả và phân công trách nhiệm giữa các đối tượng.

🔍 Dấu hiệu nhận biết

Công việc cần chia thành từng bước (như trên một dây chuyền). Ví dụ tiêu biểu: Middleware của ứng dụng web - HTTP Request tới, đi qua một loạt Middleware (xác thực, phân quyền…) trước khi đến bước xử lý cuối. Một bước gặp vấn đề → Request bị tạm dừng.

Ví dụ: Pipeline trong Laravel

use Illuminate\Support\Facades\Pipeline;
use App\Pipelines\CheckAuthentication;
use App\Pipelines\LogRequest;
use App\Pipelines\HandleResponse;
 
$request = [];
 
// Request đi qua lần lượt các class xử lý
$response = Pipeline::send($request)
    ->through([
        CheckAuthentication::class,
        LogRequest::class,
        HandleResponse::class,
    ])
    ->then(function ($request) {
        return "Request handled successfully.";
    });
 
echo $response;

Liên quan