दोस्तों का एक समूह और मैं पिछले कुछ समय से एक परियोजना पर काम कर रहे हैं, और हम अपने उत्पाद के लिए विशिष्ट परिदृश्य का प्रतिनिधित्व करने का एक अच्छा ओओपी तरीका आविष्कार करना चाहते थे। असल में, हम एक टोहो-स्टाइल बुलेट नरक गेम पर काम कर रहे हैं , और हम एक ऐसी प्रणाली बनाना चाहते थे जहां हम आसानी से बुलेट के किसी भी संभावित व्यवहार का प्रतिनिधित्व कर सकते हैं जो हम सपने देख सकते हैं।
तो ठीक यही हमने किया; हमने एक बहुत ही सुंदर वास्तुकला बनाई, जिसने हमें विभिन्न घटकों में बुलेट के व्यवहार को बंद करने की अनुमति दी, जो कि बुलेट इंस्टेंस से जुड़ी हो सकती है, जो कि यूनिटी के घटक प्रणाली की तरह है। यह अच्छी तरह से काम करता था, यह आसानी से एक्स्टेंसिबल था, यह लचीला था और हमारे सभी ठिकानों को कवर करता था, लेकिन थोड़ी समस्या थी।
हमारे आवेदन में भारी मात्रा में प्रक्रियात्मक पीढ़ी भी शामिल है, अर्थात् हम प्रक्रियात्मक रूप से गोलियों के व्यवहार को उत्पन्न करते हैं। यह समस्या क्यों है? खैर, गोली व्यवहार का प्रतिनिधित्व करने के लिए हमारा ओओपी समाधान, जबकि सुरुचिपूर्ण, मानव के बिना काम करने के लिए थोड़ा जटिल है। तार्किक और चतुर दोनों समस्याओं के समाधान के बारे में सोचने के लिए मनुष्य काफी चतुर है। प्रक्रियात्मक पीढ़ी के एल्गोरिदम अभी तक स्मार्ट नहीं हैं, और हमने एक एआई को लागू करना मुश्किल पाया है जो हमारी ओओपी वास्तुकला का उपयोग अपनी पूरी क्षमता से करता है। बेशक, यह वास्तुकला का एक दोष है कि यह सभी स्थितियों में सहज नहीं है।
इसलिए इस समस्या को दूर करने के लिए, हमने मूल रूप से बुलेट क्लास में विभिन्न घटकों द्वारा पेश किए गए सभी व्यवहारों को हिला दिया, ताकि हम जो कुछ भी कल्पना कर सकते हैं वह सीधे प्रत्येक बुलेट उदाहरण में अन्य संबंधित घटक उदाहरणों के विपरीत पेश किया जाए। इससे हमारी प्रक्रियात्मक पीढ़ी के एल्गोरिदम को काम करना थोड़ा आसान हो जाता है, लेकिन अब हमारी बुलेट क्लास एक विशाल ईश्वर वस्तु है । यह आसानी से कार्यक्रम में सबसे बड़ा वर्ग है जो अब तक पांच बार से अधिक कोड के साथ कुछ भी है। यह एक दर्द के रूप में अच्छी तरह से बनाए रखने के लिए है।
क्या यह ठीक है कि हमारी एक कक्षा एक देव वस्तु में बदल गई, बस एक और समस्या के साथ काम करना आसान हो गया? सामान्य तौर पर, यदि आपके कोड में एक अलग समस्या का आसान समाधान है, तो कोड गंध होना ठीक है?