الگوی طراحی 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 ...