2012-12-20 12 views
5

में ऑब्जेक्ट दीक्षा के लिए ओओ डिज़ाइन पैटर्न पाइथन में कोई एपीआई बनाते समय, मुझे यकीन नहीं है कि init के साथ मूल ऑब्जेक्ट का उदाहरण बनाने में क्या दृष्टिकोण है।एक एपीआई

जब एपीआई में वस्तु का उदाहरण बनाकर, उपयोगकर्ता चाहते हैं सबसे अधिक संभावना होगी वस्तु दो चीजों में से एक होने के लिए:

  1. एक उद्देश्य यह है कि पहले से ही क्या एपीआई किया जा रहा है में मौजूद है का एक उदाहरण इस के लिए एक स्वीकृत डिजाइन पैटर्न
  2. के खिलाफ बुलाया में एक नई वस्तु बनाने एपीआई क्या

के खिलाफ बुलाया जा रहा है वहाँ है? क्या केवल एक खाली वस्तु बनाना चाहिए, और फिर उपभोक्ता को एक प्राप्त या सेट विधि कॉल करनी चाहिए? या शायद init एक तर्क लेना चाहिए कि यह एक मिलता है या सेट है? या आखिरकार, तर्कों से इनिट में अनुमान लगाया जाना चाहिए या सेट करना चाहिए?

उत्तर

2

मैं एक डिज़ाइन पैटर्न की सोच भी नहीं सकते कि वास्तव में मैच के लिए क्या आप करते हुए बताया कि कर रहे हैं के बाद से:

  • Factory pattern आमतौर पर वर्गों में से एक परिवार (पदानुक्रम) से संबंधित है।
  • Builder pattern आमतौर पर कई कक्षाओं से बना जटिल वस्तुओं से संबंधित है।

एपीआई को निम्नलिखित में ओवरलोड करने के बारे में कैसे?

जब कोई तर्कों द्वारा सक्रिय:

custom_API() 

तो बस कुछ उचित मूलभूत मूल्यों के साथ एक नया बुनियादी वस्तु बना सकते हैं और उपभोक्ता उपयोग मिलता है/यह कॉन्फ़िगर करने के लिए सेट करें।

जब किसी प्रकार की देखने कुंजी के साथ अनुरोध किया गया:

custom_API("abc") 

तो इसी वस्तु, या देखने कुंजी की वस्तुओं की एक सूची प्रदान अस्पष्ट है, या None अगर कोई मिलता-जुलता वस्तु पाया जा सकता है।