मैं Java, JavaScript और Scala में ओओ 'धाराप्रवाह इंटरफ़ेस' दृष्टिकोण के बारे में पढ़ रहा हूं और मुझे इसकी पसंद पसंद है, लेकिन यह देखने के लिए संघर्ष कर रहा है कि स्कैला में एक और प्रकार-आधारित/कार्यात्मक दृष्टिकोण के साथ इसे कैसे सुलझाना है ।स्कैला में एक कार्यात्मक शैली के साथ मैं धाराप्रवाह इंटरफेस को कैसे जोड़ सकता हूं?
मैं क्या मतलब है की एक बहुत विशिष्ट उदाहरण के लिए: के रूप में परिभाषित,
val response = MyTargetApi.get("orders", 24)
get()
से वापसी मान एक Tuple3
प्रकार RestfulResponse
कहा जाता है: मैं एक API ग्राहक जो इस तरह लागू किया जा सकता है लिखा है में मेरी package object:
// 1. Return code
// 2. Response headers
// 2. Response body (Option)
type RestfulResponse = (Int, List[String], Option[String])
यह ठीक काम करता है - और मैं नहीं है वास्तव में एक टपल वापसी मान के कार्यात्मक सादगी बलिदान करने के लिए चाहते हैं - लेकिन मैं विभिन्न 'च के साथ पुस्तकालय विस्तार करना चाहते हैं luent 'विधि कॉल, शायद कुछ इस तरह:
val response = MyTargetApi.get("customers", 55).throwIfError()
// Or perhaps:
MyTargetApi.get("orders", 24).debugPrint(verbose=true)
मैं और अधिक जोड़ने की क्षमता के साथ एक टाइप टपल (या समान) लौटने get()
के कार्यात्मक सादगी कैसे गठजोड़ कर सकते हैं' मेरे एपीआई को धाराप्रवाह 'क्षमताओं?
यह "धाराप्रवाह इंटरफ़ेस" दृष्टिकोण ... स्थिर रूप से टाइप की गई भाषाओं के प्रति बहुत अनुकूल नहीं दिखता है। हालांकि मुझे यकीन है कि कुछ रैपिंग कोड और विरासत के साथ आप शायद इसे स्कैला के साथ कर सकते हैं, यह 'getOrders' और 'getCustomers 'को अलग-अलग प्राप्त करने के बजाय' get (" ऑर्डर ") के बजाय अलग-अलग प्रकार के रूप में सुरक्षित नहीं होगा। 'वही' प्राप्त विधि का उपयोग करके '(" ग्राहक ") प्राप्त करें। –
धन्यवाद दान - लेकिन मैं 'get ("slug", id)' वाक्यविन्यास के बारे में बहुत ज्यादा चिंता नहीं करता - यह वास्तव में मेरा प्रश्न नहीं है। किसी भी मामले में लाइब्रेरी में एक और अधिक टाइपएफ़ मोड है जो 'MyTargetApi.orders.get (id)' –
जैसा दिखता है व्यक्तिगत रूप से मुझे लगता है कि आपको कुछ धाराप्रवाह कोड का अधिक प्रतिनिधि उदाहरण प्रदान करना चाहिए और आप जो कुछ भी सोचते हैं वह कार्यात्मक नहीं है। फिलहाल, यह सिर्फ आपके प्रश्न से प्रकट होता है कि आप वास्तव में नहीं जानते कि किस धाराप्रवाह का अर्थ है –