मेरे पास निम्न इंटरफ़ेस है।क्या यह एक सजावट या रणनीति पैटर्न है, या दो में से कोई नहीं?
PowerSwitch.java
public interface PowerSwitch {
public boolean powerOn();
public boolean powerOff();
public boolean isPowerOn();
}
ऊपर इंटरफेस, तरीकों जो किसी भी अन्य कार्यक्षमता से प्राप्त किया जा सकता है की न्यूनतम सेट से मिलकर चाहिए संभव के रूप में अतिरिक्त PowerSwitch कार्यान्वयन को जोड़ने के लिए यह रूप में आसान बनाने के लिए।
मैं रन-टाइम में PowerSwitch इंटरफेस में कार्यक्षमता जोड़ने के (क्या सज्जाकार करते हैं) एक वर्ग है जो एक PowerSwitch उदाहरण के एक संरचना रखती है और कहते हैं नए तरीके बनाने के द्वारा, दो toggleOnOff (जैसे चाहते हैं) तरीकों नीचे। इस तरह मुझे केवल दो टॉगल विधियों को एक बार लागू करने की आवश्यकता है और यह सभी पावरस्विच कार्यान्वयन पर लागू होगा।
क्या यह एक अच्छी/बुरी आदत के रूप में माना जाता है? यदि बुरा है, तो कोई अन्य सिफारिशें?
यह वास्तव में सजावटी-पैटर्न का पालन नहीं करता क्योंकि यह अतिरिक्त विधियों को जोड़ता है। क्या यह एक रणनीति पैटर्न, या एक रचना पैटर्न है? या क्या इसका दूसरा पैटर्न नाम है? क्या "इंटरफ़ेस सजावट" जैसी कोई चीज़ है?
PowerSwitchDecorator.java
public class PowerSwitchDecorator {
private PowerSwitch ps;
public PowerSwitchDecorator(PowerSwitch ps) {
this.ps = ps;
}
public void toggleOnOff(int millis) throws InterruptedException{
powerOn();
Thread.sleep(millis);
powerOff();
}
public void toggleOnOff(){
powerOn();
powerOff();
}
public boolean powerOn() {
return ps.powerOn();
}
public boolean powerOff() {
return ps.powerOff();
}
public boolean isPowerOn() {
return ps.isPowerOn();
}
}
PowerSwitchDecorator PowerSwitch इंटरफ़ेस को लागू क्यों नहीं करता है? यह निश्चित रूप से ... – Ani