इंटरफ़ेस और कार्यान्वयन दोनों को लागू करना आम जगह है, और यह एक समस्या नहीं लगती है।
उदाहरण के लिए जावा एपीआई लें - अधिकांश कक्षाओं में एक ही पैकेज में शामिल इंटरफेस और उनके कार्यान्वयन दोनों हैं।
उदाहरण के लिए java.utilपैकेज लें :
यह इस तरह के रूप इंटरफेस शामिल Set, Map, List, भी कार्यान्वयन करते हुए इस तरह के रूप HashSet, HashMapऔर ArrayList।
इसके अलावा, Javadocs, अच्छी तरह से उन परिस्थितियों में काम करने के लिए तैयार कर रहे हैं के रूप में यह में प्रलेखन अलग करती है इंटरफेस और वर्गों बार देखा गया जब पैकेज की सामग्री प्रदर्शित।
केवल इंटरफेस के लिए पैकेज होने से वास्तव में थोड़ा अधिक हो सकता है, जब तक कि बड़ी संख्या में इंटरफेस न हों। लेकिन ऐसा करने के लिए इंटरफेस को अपने स्वयं के पैकेज में अलग करना, ताकि बुरा अभ्यास हो।
यदि कार्यान्वयन से एक इंटरफ़ेस के नाम को अलग करना आवश्यक है, तो इंटरफेस को पहचानने में आसान बनाने के लिए एक नामकरण सम्मेलन हो सकता है:
एक के साथ इंटरफेस नाम उपसर्ग I। यह दृष्टिकोण .NET फ्रेमवर्क में इंटरफेस के साथ लिया गया है। यह बताना काफी आसान होगा कि IListयह सूची के लिए एक इंटरफ़ेस है।
- ableप्रत्यय का प्रयोग करें । यह दृष्टिकोण जैसे, जावा एपीआई में अक्सर देखा जाता है Comparable, Iterableऔर Serializableकुछ नाम हैं।