डिजाइन पैटर्न अन्वेषण : उत्तरदायित्वस्य श्रृङ्खला पैटर्न
2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
1. उत्तरदायित्वस्य श्रृङ्खलाप्रतिरूपं किम् ?
उत्तरदायित्वस्य श्रृङ्खला प्रतिरूपम् (Chain of Responsibility Pattern) इति व्यवहारस्य डिजाइनप्रतिमानम् अस्ति । परिभाषा यथा- १.
- अनुरोधस्य प्रेषकस्य ग्राहकस्य च युग्मनं परिहरन्तु तथा च बहुभ्यः वस्तुभ्यः अनुरोधं नियन्त्रयितुं अवसरं ददतु ।
- अनुरोधं प्राप्यमाणानि वस्तूनि श्रृङ्खलायां संयोजयन्तु, अनुरोधं च अस्याः श्रृङ्खलायाः माध्यमेन यावत् वस्तु तत् सम्भालितुं न शक्नोति तावत् यावत् पारयन्तु ।

2. उत्तरदायित्वशृङ्खलाप्रतिरूपस्य भूमिका
- कोड मापनीयतासुधारार्थं अनुरोधानाम् अनुरोधप्रक्रियाणां च वियुग्मनं कुर्वन्तु ।
3. उत्तरदायित्वस्य श्रृङ्खलाप्रतिरूपस्य संरचना

उत्तरदायित्वस्य श्रृङ्खलाप्रतिरूपे मुख्यतया निम्नलिखितभूमिकाः समाविष्टाः सन्ति ।
- अमूर्त संचालक भूमिका: अनुरोधानाम् संसाधनार्थं एकं अन्तरफलकं परिभाषयन्तु, यत्र अमूर्तसंसाधनविधयः तदनन्तरं च संयोजनं च सन्ति (शृङ्खलायां प्रत्येकं संचालकस्य सदस्यचरं भवति यत् अग्रिमस्य नियन्त्रकस्य सन्दर्भं रक्षितुं शक्नोति)
- कंक्रीट संचालक भूमिका: अनुरोधं संसाधितुं शक्यते वा इति निर्धारयितुं अमूर्तसंसाधकस्य संसाधनविधिं कार्यान्वितं कुर्वन्तु यदि अनुरोधं संसाधितुं शक्यते तर्हि तत् संसाधयन्तु, अन्यथा अनुरोधः तस्य उत्तराधिकारिणं प्रति स्थानान्तरितः भविष्यति।
- ग्राहक भूमिका: एकं प्रसंस्करणशृङ्खलां निर्माय श्रृङ्खलायाः शिरसि स्थितं विशिष्टं हन्डलर-वस्तुं प्रति अनुरोधं प्रस्तौतुम् अस्य प्रसंस्करणविवरणस्य अनुरोधवितरणप्रक्रियायाः च चिन्ता नास्ति ।
वास्तविकविकासे उत्तरदायित्वशृङ्खलाप्रतिरूपं विशिष्टसंसाधकानां प्रबन्धनार्थं उत्तरदायित्वशृङ्खलाप्रबन्धकं योजयितुं शक्नोति ।
4. वास्तविकविकासे उत्तरदायित्वस्य श्रृङ्खलाप्रतिरूपस्य अनुप्रयोगः
SpringBoot इत्यस्मिन् उत्तरदायित्वप्रतिमानस्य श्रृङ्खलायाः अभ्यासस्य बहवः उपायाः सन्ति निम्नलिखितम् उदाहरणम् अस्ति: आदेशप्रक्रियायाः कृते बहुविधस्वतन्त्रपरीक्षणतर्कः ।

४.१ कार्यान्वयनविधिः १
- पोजो रचयन्तु, वस्तु आदेशयन्तु
public class OrderContext {
private String seqId;
private String userId;
private Long skuId;
private Integer amount;
private String userAddressId;
}