الگوی طراحی Chain of Responsibility در c++‎

  • ایده اصلی پشت این طراحی برای زمانیست که یک درخواست یا دستور از چندین شی عبور کند تا زمانی که انجام شود .
  • اشیای درگیر در این الگو دو نوع هستند ، اشیای پردازش و اشیای دستوری
  • اشیای پردازشی دستوری که اشیای دستوری داده اند را انجام می‌دهند .
  • هر شی پردازشی میداند که چه چیزی را میتواند انجام دهد و دستور را به شی بعدی در حلقه می‌فرستد اگر دستور انجام نشده باشد (زنجیره به پایان نرسیده باشد )
  • یک مثال برای درک بهتر این الگو مکانیسم مدیریت استثناهای سی پلاس پلاس است . استثنای حل نشده در پشته تماس بالا می‌رود تا کسی بر آن عمل کند .

کد مثال :

خروجی :

--------------- o/p for command 1 ----------------
AnalyzeError::Handled the command to analyze the error ...
--------------- o/p for command 2 ----------------
AnalyzeError::Passing to my successor ...
FixError::Passing to my successor ...
VerifyError::Passing to my successor ...
CloseError::Handled the command to close the error ...

 

 

 

منبع