हाल ही में मैं एक निर्माता पैटर्न के साथ आया जिसने मुझे चिढ़ाया।बिल्डरपटर के अंदर तर्क
तो, मेरे पास EntityBuilder
है जो Entity
बनाता है, लेकिन यह इकाई को वापस नहीं करता है।
public void build();
इसके बजाय, build()
विधि के अंदर, यह बनाई गई नई वस्तु, Entity
बचाता है, एक CacheImplementation
उदाहरण यह स्टोर करने के लिए करने के लिए: यहाँ विधि हस्ताक्षर है। नोट: CacheImpl
बिल्डर के निर्माता में इंजेक्शन दिया गया है।
public void build(){
//create new entity
cacheImplementation.add(entity);
}
क्या यह सर्वोत्तम अभ्यास की तरह लगता है?
बाद में संपादित करें 0
public interface EntityBuilder {
void setProperty0(PropertyObject propertyObject0);
void setProperty1(PropertyObject propertyObject1);
void setProperty2(PropertyObject propertyObject2);
//...
void build();
}
public class EntityBuilderImpl implements EntityBuilder {
PropertyObject propertyObject0;
PropertyObject propertyObject1;
PropertyObject propertyObject2;
//...
// setters for all properties
@Override
public void build(){
//create new entity
cacheImplementation.add(entity);
}
}
बिल्डर का प्रयोग इस प्रकार है:
public class EntityProcessor{
private EntityBuilderFactory entityBuilderFactory;//initialized in constructor
void process(EntityDetails entityDetails){
EntityBuilder entityBuilder = this.entityBuilderFactory.getNewEntitytBuilder();
//..
// entityBuilder.set all properties from entityDetails
entityBuilder.build();
}
}
नोट: cacheImpl उदाहरण सिर्फ एक List<>
है जिसमें संस्थाओं संग्रहीत करता है हर एन सेकंड तक पहुँचता है।
पारंपरिक डिजाइन पैटर्न के बदलाव अच्छे लगते हैं। मैंने यह देखने के लिए कोड का एक छोटा सा स्निपेट जोड़ा है जिसका मेरा मतलब है। क्या यह न्याय करने के लिए पर्याप्त है? – VladLucian
नहीं, पर्याप्त नहीं है। अधिक दिलचस्प हिस्सा बिल्डर और कैश का उपयोग होगा। एक कैश के रूप में एक सूची बीटीडब्ल्यू अजीब लगता है। मुझे एक नक्शा की उम्मीद थी। – janos
यह एक सूची नहीं है, यह प्रसंस्करण शुरू होने पर हर बार, एन सेकंड पर एक सेट साफ़ किया जाता है। मैंने फिर से संपादित किया है कि निर्माता का उपयोग कैसे किया जाता है। – VladLucian