एसआरपी का परिचय:
एकल उत्तरदायित्व सिद्धांत (एसआरपी) पांच ठोस सिद्धांतों में से एक है, जो स्वच्छ और अधिक टिकाऊ कोड लिखने के लिए दिशानिर्देशों का एक सेट है। एसआरपी का कहना है कि एक वर्ग के पास बदलाव का केवल एक ही कारण होना चाहिए, जिसका अर्थ है कि उसकी केवल एक जिम्मेदारी या कार्य होना चाहिए। इस सिद्धांत का पालन करने से कोड को समझना, बनाए रखना और परीक्षण करना आसान हो जाता है।
एसआरपी के उद्देश्य:
बुरा अभ्यास उदाहरण (कक्षाएं):
यहां हमारे पास एक UserService क्लास है जो एक से अधिक काम करती है: उपयोगकर्ताओं को प्रबंधित करती है और सूचनाएं भेजती है।
class UserService { createUser(user: User): void { // Logic to create user } deleteUser(userId: string): void { // Logic to delete user } notifyUser(userId: string, message: string): void { // Logic to notify user } }
इस दृष्टिकोण में, यूजर सर्विस क्लास की कई जिम्मेदारियां हैं: उपयोगकर्ताओं को प्रबंधित करना और सूचनाएं भेजना। यह एसआरपी का उल्लंघन करता है।
अच्छे अभ्यास उदाहरण (कक्षाएं):
एसआरपी लागू करने के लिए, हम जिम्मेदारियों को अलग-अलग वर्गों में विभाजित कर सकते हैं।
class UserService { createUser(user: User): void { // Logic to create user } deleteUser(userId: string): void { // Logic to delete user } } class NotificationService { notifyUser(userId: string, message: string): void { // Logic to notify user } }
अब, UserService केवल उपयोगकर्ता निर्माण और विलोपन को संभालती है, जबकि अधिसूचना सेवा सूचनाओं को संभालती है। एसआरपी का पालन करते हुए प्रत्येक वर्ग की एक ही जिम्मेदारी होती है।
बुरा अभ्यास उदाहरण (कार्य):
यहां हमारे पास एक फ़ंक्शन है जो एक से अधिक कार्य करता है: एक उपयोगकर्ता बनाता है और एक अधिसूचना भेजता है।
function createUserAndNotify(user: User, message: string): void { // Logic to create user // Logic to send notification }
इस दृष्टिकोण में, createUserAndNotify फ़ंक्शन की कई जिम्मेदारियां हैं: एक उपयोगकर्ता बनाना और एक अधिसूचना भेजना। यह एसआरपी का उल्लंघन करता है।
अच्छे अभ्यास उदाहरण (कार्य):
एसआरपी लागू करने के लिए, हम जिम्मेदारियों को अलग-अलग कार्यों में अलग कर सकते हैं।
function createUser(user: User): void { // Logic to create user } function notifyUser(userId: string, message: string): void { // Logic to notify user } // Using the separated functions createUser(newUser); notifyUser(newUser.id, 'Welcome!');
अब, createUser फ़ंक्शन केवल उपयोगकर्ता निर्माण को संभालता है, जबकि InformUser सूचनाओं को संभालता है। एसआरपी के बाद प्रत्येक फ़ंक्शन की एक ही जिम्मेदारी होती है।
टाइपस्क्रिप्ट के साथ रिएक्ट नेटिव में एप्लिकेशन:
कल्पना कीजिए कि हम एक कार्य प्रबंधन ऐप विकसित कर रहे हैं। हम कार्य प्रबंधन तर्क और अधिसूचना तर्क को अलग-अलग वर्गों में अलग करके एसआरपी लागू कर सकते हैं।
बुरा अभ्यास उदाहरण (कक्षाएं):
class TaskService { addTask(task: Task): void { // Logic to add task } removeTask(taskId: string): void { // Logic to remove task } notifyTaskDue(taskId: string): void { // Logic to notify that the task is due } }
अच्छे अभ्यास उदाहरण (कक्षाएं):
class TaskService { addTask(task: Task): void { // Logic to add task } removeTask(taskId: string): void { // Logic to remove task } } class TaskNotificationService { notifyTaskDue(taskId: string): void { // Logic to notify that the task is due } }
बुरा अभ्यास उदाहरण (कार्य):
function addTaskAndNotify(task: Task): void { // Logic to add task // Logic to notify that the task is due }
अच्छे अभ्यास उदाहरण (कार्य):
function addTask(task: Task): void { // Logic to add task } function notifyTaskDue(taskId: string): void { // Logic to notify that the task is due } // Using the separated functions addTask(newTask); notifyTaskDue(newTask.id);
जिम्मेदारियों को विभाजित करके, हम एप्लिकेशन को बनाए रखना और विस्तारित करना आसान बनाते हैं।
निष्कर्ष:
एकल उत्तरदायित्व सिद्धांत का पालन करने से कोड को साफ़, व्यवस्थित और बनाए रखने में आसान रखने में मदद मिलती है। टाइपस्क्रिप्ट के साथ रिएक्टिव नेटिव डेवलपमेंट में एसआरपी लागू करने से अधिक मॉड्यूलर और परीक्षण योग्य कोड प्राप्त होता है। इस सिद्धांत के सभी लाभों को प्राप्त करने के लिए अपनी कक्षाओं और कार्यों को एक ही जिम्मेदारी पर केंद्रित रखना हमेशा याद रखें।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3