मैं वर्तमान में हमारे कोड आधार में सभी बुरे प्रथाओं को ढूंढने और अपमानजनक कोड को ठीक करने के लिए अपने सहयोगियों को मनाने के लिए प्रभारी हूं। मेरी spelunking के दौरान, मैंने देखा है कि कई लोगों को यहाँ निम्नलिखित पैटर्न का उपयोग करें:रचनाकारों की बजाय "प्रारंभिक()" विधि के खिलाफ तर्क
class Foo
{
public:
Foo() { /* Do nothing here */ }
bool initialize() { /* Do all the initialization stuff and return true on success. */ }
~Foo() { /* Do all the cleanup */ }
};
अब मैं गलत हो सकता है, लेकिन यह मेरे लिए initialize()
विधि बात भयंकर है। मेरा मानना है कि यह रचनाकारों के पूरे उद्देश्य को रद्द कर देता है।
जब मैं अपने सहकर्मियों से पूछना क्यों इस डिजाइन निर्णय लिया गया था, वे हमेशा का जवाब वे कोई विकल्प नहीं है कि क्योंकि तुम फेंक बिना एक निर्माता से बाहर निकलने नहीं कर सकते हैं (मैं वे यह मान फेंक हमेशा बुरा है लगता है)।
मैं अब तक उन्हें मनाने में असफल रहा और मैं मानता हूं कि मुझे मूल्यवान तर्कों की कमी हो सकती है ... तो मेरा प्रश्न है: क्या मैं सही हूं कि यह निर्माण एक दर्द है और यदि हां, तो आप इसमें क्या समस्याएं देखते हैं ?
धन्यवाद।
FTR, इस दो चरण प्रारंभ के रूप में जाना जाता है। –
यहां एक स्पष्ट सवाल है: यदि निर्माण विफल रहता है, * आपके सहकर्मी आधे रास्ते से निर्मित वस्तु * के साथ क्या करना चाहते हैं? यह किसी काम का नहीं। यह निर्माण – jalf
@jalf पर एक अपवाद फेंक दिया गया है: वास्तव में अच्छा बिंदु। – ereOn