নামগুলি অর্থ বোঝানোর সুযোগ রয়েছে। ইমপ্লের সাহায্যে আপনি কেন সেই সুযোগটি ফেলে দেবেন?
প্রথমত, যদি আপনার কেবলমাত্র একটি প্রয়োগ হয় তবে ইন্টারফেসটি সরিয়ে ফেলুন। এটি এই নামকরণ সমস্যা তৈরি করে এবং কিছুই যোগ করে না। এর চেয়েও খারাপ, এটি এবং আপনার অন্যান্য সমস্ত বিকাশকারীরা কেবলমাত্র ইন্টারফেসটি ব্যবহার করার ক্ষেত্রে সতর্ক না থাকলে এপিআইগুলিতে অসামঞ্জস্য পদ্ধতি স্বাক্ষরগুলির ক্ষেত্রে সমস্যা সৃষ্টি করতে পারে।
যে দেওয়া, আমরা প্রতিটি ইন্টারফেস যে অনুমান করতে পারেন হয়েছে বা হতে পারে দুই বা ততোধিক বাস্তবায়নের।
যদি এখনই আপনার একমাত্র আছে এবং আপনি জানেন না কীভাবে অন্যটি আলাদা হতে পারে তবে ডিফল্ট একটি ভাল শুরু।
যদি আপনার এখনই দুটি থাকে, থাকে তবে এর উদ্দেশ্য অনুসারে প্রত্যেকের নাম দিন।
উদাহরণ: সম্প্রতি, আমাদের একটি কংক্রিট ক্লাস প্রবন্ধ ছিল (একটি ডাটাবেসের উল্লেখ)। এটি উপলব্ধি করা হয়েছিল যে অফলাইনে থাকা একটি প্রসঙ্গটি উপস্থাপনের জন্য আমাদের সক্ষম হওয়া দরকার, সুতরাং কনটেক্সট নামটি একটি নতুন ইন্টারফেসের জন্য ব্যবহৃত হয়েছিল (পুরানো এপিআইয়ের সাথে সামঞ্জস্য বজায় রাখতে), এবং একটি নতুন বাস্তবায়ন তৈরি হয়েছিল, অফলাইনকন্টেক্সট । তবে অনুমান করুন যে মূলটির নামকরণ করা হয়েছিল? এটা ঠিক, কনটেক্সট আইপল ( হাই )।
এই ক্ষেত্রে, DefaultContext সম্ভবত ঠিক আছে, এবং লোকেরা এটি পেতে পারে, তবে এটি এটির মতো বর্ণনামূলক নয়। সর্বোপরি, যদি এটি অফলাইন না হয় তবে এটি কী? সুতরাং আমরা সাথে গেলাম: অনলাইনকন্টেক্সট ।
বিশেষ মামলা: ইন্টারফেসে "আমি" উপসর্গ ব্যবহার করা
অন্য উত্তরগুলির মধ্যে একটি ইন্টারফেসে আই উপসর্গটি ব্যবহার করার পরামর্শ দিয়েছিল। বাঞ্ছনীয়, আপনি না প্রয়োজন এই কাজ করতে।
তবে, কাস্টম বাস্তবায়নের জন্য আপনার যদি উভয় ইন্টারফেসের প্রয়োজন হয় তবে আপনার প্রাথমিক কংক্রিট বাস্তবায়নও রয়েছে যা প্রায়শই ব্যবহৃত হবে এবং এর মূল নামটি কেবল একটি ইন্টারফেস ছেড়ে দেওয়া খুব সহজ, তবে আপনি যুক্ত করার বিষয়টি বিবেচনা করতে পারেন ইন্টারফেসটিতে "আমি" (যদিও এটি পুরোপুরি ঠিক আছে যদি এটি এখনও আপনার এবং আপনার দলের পক্ষে ঠিক না বসে)।
উদাহরণ: অনেকগুলি অবজেক্ট "ইভেন্টডিসপাচার" হতে পারে। এপিআইয়ের স্বার্থে এটি অবশ্যই একটি ইন্টারফেসের সাথে মানিয়ে নিতে পারে। তবে, আপনি প্রতিনিধি দলের জন্য একটি প্রাথমিক ইভেন্ট প্রেরণক সরবরাহ করতে চান । ডিফল্টএভেন্টডিস্প্যাচার ভাল হবে তবে এটি বেশ দীর্ঘ এবং আপনি যদি এর নামটি প্রায়শই দেখতে পান তবে আপনি কংক্রিট শ্রেণীর জন্য বেস নাম ইভেন্টডিসপাচার ব্যবহার করতে পছন্দ করতে পারেন এবং কাস্টম বাস্তবায়নের জন্য আইভেন্টডিসপ্যাচার প্রয়োগ করতে পারেন:
/* Option 1, traditional verbose naming: */
interface EventDispatcher { /* interface for all event dispatchers */ }
class DefaultEventDispatcher implements EventDispatcher {
/* default event dispatcher */
}
/* Option 2, "I" abbreviation because "EventDispatcher" will be a common default: */
interface IEventDispatcher { /* interface for all event dispatchers */ }
class EventDispatcher implements IEventDispatcher {
/* default event dispatcher. */
}