2009-05-07 32 views
6

मुझे कई अवसरों में कुछ कक्षाओं की आवश्यकता होती है ताकि वे कुछ वर्गों को परिस्थितियों का प्रतिनिधित्व और कुशलतापूर्वक उपयोग कर सकें (आमतौर पर यूआई में, उपयोगकर्ता अलग-अलग हालत प्रकारों को जोड़कर एक क्वेरी बनाता है और फिर कोड अंतर्निहित सिस्टम के आधार पर बदल सकता है पूछो, उदाहरण के लिए ल्यूसीन और एक डीबी)। मैंने कक्षाओं के एक पुन: प्रयोज्य सेट के लिए पूरी तरह से खोज की, मुझे यकीन है कि इसका उपयोग कई मौजूदा स्थानों (स्टार्टर्स के लिए सभी अभिव्यक्ति भाषाओं) में किया जाना चाहिए लेकिन आसानी से उपयोग करने योग्य कुछ भी नहीं मिला। मैंने दोनों बार खुद को कोडिंग समाप्त कर दिया, लेकिन मुझे कुछ भी पुन: उपयोग करने के बारे में बुरा लगा, मुझे यकीन है कि मैं अस्तित्व में हूं।पुन: प्रयोज्य स्थिति/अभिव्यक्ति वर्ग

विशिष्ट जरूरतों हैं: - कई ऑपरेटरों: और या आदि - ऑपरेंड की चर संख्या - अभिव्यक्ति की serializing - - पार्स/से/तार करने के लिए अभिव्यक्ति का स्वरूपण

है भाव का निर्माण करने की स्थिति के संयोजन किसी को ऐसा कुछ मिला?

+0

यह एक बहुत ही रोचक सवाल है – dfa

+0

ठीक है हाँ, फ़ैक्टर मुझे जो चाहिए वह लगता है। मैं देखता हूं कि मैं स्वीकार किए गए एक के रूप में केवल एक जवाब सेट कर सकता हूं। पहले एक या अधिक पूर्ण लेकिन बाद में स्वीकार करने के लिए, कस्टम क्या है, यह नहीं पता। धन्यवाद! – Persimmonium

उत्तर

0

Apache Commons Functor पर एक नज़र डालें। जैसे UnaryPredicate, UnaryAnd, UnaryOr, आदि। अंतर्निहित कार्यान्वयन Serializable हैं, लेकिन मुझे तारों से पार्सिंग के बारे में पता नहीं है। फिर भी, मुझे लगता है कि आप जो चाहते हैं उसकी ओर एक बहुत अच्छी शुरुआत है। इसके अलावा, लाइब्रेरी के आधार पर this IBM tutorial पर एक नज़र डालें।

0

ऐसा लगता है कि आप Hibernate Criteria API जैसे कुछ ढूंढ रहे हैं। दोष यह है कि आप किसी डेटाबेस से बंधे हैं या यहां तक ​​कि एक विशिष्ट दृढ़ता ढांचे के कार्यान्वयन से भी बदतर हैं। इसके अलावा यह आपकी सभी आवश्यकताओं को शामिल नहीं करता है, इसलिए मुझे नहीं लगता कि यह एक अच्छा विकल्प है ...

+0

असल में, मैं इन शर्तों/अभिव्यक्तियों को बदलने वाली चीजों में से एक है, हाइबरनेट मानदंड एपीआई के माध्यम से एक एसक्यूएल क्वेरी है (दूसरा एक ल्यूसीन क्वेरी है, और और भी हो सकता है)। लेकिन मैं कुछ और तटस्थ के बारे में सोच रहा था, और प्रत्येक मामले के लिए इसे अनुकूलित करने की कुछ हद तक आवश्यकता होगी (सबक्लासिंग या जो भी मैंने गहराई से इसके बारे में नहीं सोचा है)। – Persimmonium

0

आप ANTLR देख सकते हैं।

+0

ऐसा नहीं है कि कंपेलरों और ऐसे निर्माण के लिए उपयोग किया जाता है ?? जो मैं खोज रहा था वह कुछ और आसान है। – Persimmonium

1

ऐसा लगता है कि आप Functors (उर्फ फ़ंक्शन ऑब्जेक्ट्स) की तलाश में हैं। यदि हां, तो यह SO question प्रासंगिक होगा, wrt। विकल्प: कॉमन्स फ़ैक्टर (पहले से उल्लेख किया गया) एक विकल्प है लेकिन अन्य भी हैं।

सभी मज़ेदार libs ढांचे के साथ आते हैं (जो काफी सरल है, असीरी, द्विआधारी भविष्यवाणी, उन लोगों के लिए मैपिंग कार्यक्षमता, चेनिंग के संयोजन) और सबसे सामान्य रूप से आवश्यक कार्यों का मूल सेट।

संबंधित मुद्दे