প্রাইভেট ইন্টারফেস মেথড (Private Interface Methods)
প্রাইভেট মেথড ব্যবহার করে ইন্টারফেসে শেয়ারড লজিক (shared logic) এক্সট্র্যাক্ট করুন।
কোড তুলনা
✕ Java 8
interface Logger {
default void logInfo(String msg) {
System.out.println(
"[INFO] " + timestamp() + msg);
}
default void logWarn(String msg) {
System.out.println(
"[WARN] " + timestamp() + msg);
}
}
✓ Java 9+
interface Logger {
private String format(String lvl, String msg) {
return "[" + lvl + "] " + timestamp() + msg;
}
default void logInfo(String msg) {
IO.println(format("INFO", msg));
}
default void logWarn(String msg) {
IO.println(format("WARN", msg));
}
}
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
কেন আধুনিক পদ্ধতি ভালো
কোড রিইউজ (Code Reuse)
ডুপ্লিকেশন ছাড়াই ডিফল্ট মেথডগুলোর মধ্যে লজিক শেয়ার করুন।
এনক্যাপসুলেশন (Encapsulation)
ইমপ্লিমেন্টেশন ডিটেইলস ইমপ্লিমেন্টিং ক্লাসগুলো থেকে লুকানো থাকে।
DRY ইন্টারফেস
ডিফল্ট মেথডগুলোর মধ্যে আর কপি-পেস্টের প্রয়োজন নেই।
পুরনো পদ্ধতি
ডুপ্লিকেটেড লজিক
আধুনিক পদ্ধতি
প্রাইভেট মেথডস (Private Methods)
JDK থেকে
9
কঠিনতা
মধ্যম
JDK সমর্থন
প্রাইভেট ইন্টারফেস মেথড (Private Interface Methods)
উপলব্ধ
JDK 9 (সেপ্টেম্বর 2017) থেকে ব্যাপকভাবে উপলব্ধ
কীভাবে কাজ করে
Java 9 ইন্টারফেসে প্রাইভেট মেথড ব্যবহারের অনুমতি দেয়, যা আপনাকে ইমপ্লিমেন্টিং ক্লাসগুলোর (implementing classes) কাছে ইমপ্লিমেন্টেশন ডিটেইলস এক্সপোজ না করেই ডিফল্ট মেথডগুলোর মধ্যে কোড শেয়ার করতে সক্ষম করে।
সম্পর্কিত ডকুমেন্টেশন
প্রমাণ