में सबक्लास लौटने पर मैं ऐसी समस्या पर काम कर रहा हूं जहां Foo
के कई कार्यान्वयन हैं, कई FooBuilder
के साथ। जबकि Foo
के शेयर को साझा करने की आवश्यकता वाले कई सामान्य चर, उनके पास विशिष्ट चर भी हैं जिनके लिए कुछ विशिष्ट कार्यक्षमता को लागू करने के लिए उनके संबंधित FooBuilder
की आवश्यकता होती है।जावा: सुपरक्लास विधि हस्ताक्षर
public abstract class FooBuilder {
...
public FooBuilder setA(int A) {
this.A = A;
return this;
}
...
}
और
public class FooImplBuilder extends FooBuilder{
...
public FooImplBuilder setB(int B) {
this.B = B;
return this;
}
public FooImplBuilder setC(int C) {
this.C = C;
return this;
}
...
}
और इसी तरह, कई अलग अलग FooBuilder
कार्यान्वयन के साथ: संक्षिप्तता के लिए, मैं, विधि श्रृंखलन उपयोग करने के लिए की तरह FooBuilder
के setters करना चाहते हैं। यह तकनीकी रूप से वह सब कुछ करता है जो मैं चाहता हूं, हालांकि, यह तरीका विधि श्रृंखला के दौरान विधियों के कॉल के क्रम के प्रति संवेदनशील है।
someFoo.setA(a).setB(b)...
आवश्यकता डेवलपर आदेश के बारे में लगता है कि की विधि श्रृंखला में कॉल: विधि निम्नलिखित है त्रुटियों संकलन अपरिभाषित। इससे बचने के लिए, मैं FooBuilder
में सेटर्स को वास्तविक कार्यान्वयन सबक्लास लौटा दूंगा। हालांकि, मुझे यकीन नहीं है कि यह कैसे करें। सबसे अच्छा तरीका क्या है?
इसके अलावा, यह या तो बलों हर जगह कास्टिंग, या यह आप सुपर-क्लास के गुणों को बदलने के लिए जब आप चाहते से रोकता है। –