में वैकल्पिक विधि कार्यान्वयन मैं कुछ ढांचे पर काम कर रहा हूं और मुझे एक अमूर्त वर्ग मिला है, जिसे कार्यान्वित किया जाना चाहिए।एक अमूर्त वर्ग
अब मुझे कुछ अन्य सामान मिल गया है जो उपयोगकर्ता को कॉन्फ़िगर करने में सक्षम होना चाहिए, लेकिन यह वैकल्पिक है।
तो बजाय सार विधि:
public abstract class AbstractModule {
public void doSomething() {
if (logMessage() != null)
System.out.println(logMessage());
doStuff();
}
protected abstract String logMessage(); // I'm optional
protected abstract void doStuff();
}
मैं सिर्फ एक अंतरफलक कार्यान्वयन के लिए जाँच के बारे में सोचा:
public interface Log {
String logMessage();
}
public abstract class AbstractModule {
public void doSomething() {
if (this instanceof Log) {
if (((Log) this).logMessage() != null)
System.out.println(((Log) this).logMessage());
}
doStuff();
}
protected abstract void doStuff();
}
तो, अगर किसी को इंटरफेस के साथ AbstractModule लागू कर रहा है लॉग इन करें यह भी पता चलेगा संदेश। कार्यान्वयनकर्ता के लिए लाभ जो मैं देखता हूं: उसे logMessage() को लागू करने की परवाह करने की आवश्यकता नहीं है, क्योंकि यह पहले उदाहरण में होगा। क्या यह एक वैध दृष्टिकोण है या इसे अलग-अलग किया जाना चाहिए?
अग्रिम धन्यवाद!
सादर