में पैकेज समकक्ष दृश्यता संशोधक मैं एक प्रोग्राम लिख रहा हूं जिसमें मैं फैक्ट्री पैटर्न का उपयोग कर रहा हूं। मेरे पास एसेटफंड कैलकुलेटर नामक एक इंटरफ़ेस है और नामक एक वर्ग एसेटफंड कैलकुलेटर Impl जो इंटरफ़ेस लागू करता है।कोटलिन
AssetFundValidator वर्ग कुछ आदानों की पुष्टि करता है, और एक वैध AssetFundCalculatorImpl का दृष्टांत करने में सक्षम है।
मैं अगर कार्यक्रम के बाकी केवल AssetFundCalculatorImpl के बारे में नहीं इंटरफेस के बारे में पता होता है, और इसलिए है कि केवल AssetFundValidator यह दृष्टांत सकता है चाहते हैं,।
मेरे पैकेज संरचना इस तरह देख रहा है:
जावा में, मैं पैकेज AssetFundCalculatorImpl वर्ग के लिए दृश्यता संशोधक देना होगा, या यह निर्माता है, और यह इस मुद्दे को हल है, लेकिन में कोटलिन, कोई पैकेज दृश्यता संशोधक नहीं है।
क्या इसका कोई समाधान है? मैं इस कोड को अलग से संकलित मॉड्यूल में नहीं रखना चाहता, इसलिए आंतरिक संशोधक काम नहीं करेगा।
बहुत साफ नहीं है, लेकिन कम से कम यह काम कर रहा है। – LordScone
आखिरकार मैंने इस समाधान का उपयोग नहीं किया, मैं वास्तव में एक फ़ाइल में दो कक्षाओं को डालना पसंद नहीं करता। भाषा से पैकेज संशोधक को छोड़ने का कारण क्या था? – LordScone
आपको एक से अधिक कक्षाओं को एक फ़ाइल में डालने के लिए उपयोग किया जाना चाहिए, यह कोटलिन में एक बहुत ही आम पैटर्न है। हमने पैकेज-स्थानीय दृश्यता शामिल नहीं की है क्योंकि यह कुछ भी छिपाने का एक अच्छा तरीका नहीं है: मॉड्यूल का उपयोगकर्ता उसी पैकेज में कक्षाएं बना सकता है जो मॉड्यूल उपयोग करता है और इस प्रकार उस मॉड्यूल के पैकेज-स्थानीय भागों तक पहुंच प्राप्त करता है। – yole