मुझे अपने एप्लिकेशन में एक आंतरिक स्टोरेज परत मिली है, जो Foo
ऑब्जेक्ट्स को संभालती है। संचालन के दौरान, डेटा परत को क्लस्टरिंग के लिए महत्वपूर्ण लाभ होते हैं, लेकिन मैं वास्तव में केवल 10% समय के बारे में कई प्राप्त करता हूं।एक स्टोरेज एपीआई में सिंगुलर बनाम बहुवचन को परिभाषित करने का आदर्श तरीका क्या है?
दृष्टिकोण एक::
interface FooStorage {
Foo getFoo(String name);
List<Foo> getFoos(List<String> names);
}
दृष्टिकोण बी:
interface FooStorage {
List<Foo> getFoos(List<String> names);
}
class StorageUtility {
public static <T> T firstOrNull(List<T> data) { ... }
}
दृष्टिकोण सी:
interface FooStorage {
List<Foo> getFoos(String... names);
}
class StorageUtility {
public static <T> T firstOrNull(List<T> data) { ... }
}
नकारात्मक पक्ष यह एक दृष्टिकोण करने के लिए हो रही है यहाँ विभिन्न दृष्टिकोण मैं माना जाता है कर रहे हैं एक बड़ी सतह जिसे मुझे समर्थन करने की आवश्यकता है।
दृष्टिकोण बी के नकारात्मक पक्ष में उपभोक्ता एक सूची बना रहा है जब 90% मुझे इसकी आवश्यकता नहीं है। दृष्टिकोण सी के नकारात्मक पक्ष एक सूची को 10% समय में एक सूची में कॉपी करने का ओवरहेड है।
क्या ऐसा करने के लिए कोई वैधानिक सही तरीका है?