2010-10-15 8 views
5

मैं इस व्याख्यान को देख रहा हूं (http://www.youtube.com/watch?v=aAb7hSCtvGw&hl=nl) और लगभग 34 मिनट में, स्लाइड पर एक बुलेट बिंदु का उल्लेख है "दस्तावेज़ राज्य स्थान बहुत सावधानीपूर्वक"।राज्य की जगह क्या है?

राज्य स्थान क्या है? मुझे इसे "बहुत सावधानीपूर्वक" क्यों दस्तावेज करना होगा? दुर्भाग्यवश, मेरे पास उस मशीन पर कोई आवाज नहीं है जिसे मैं अभी से पोस्ट कर रहा हूं, लेकिन स्लाइड स्वयं सीखने के लिए बेहद उपयोगी हैं (यह ध्वनि के साथ और भी सहायक होगी)।

धन्यवाद

उत्तर

4

एक राज्य अंतरिक्ष संभावित स्थितियों में से सेट, एक वस्तु का इस मामले में है।

ऑडियो में, वह मूल रूप से कह रहा है कि आपको यह दस्तावेज करने की आवश्यकता है कि कौन से परिचालनों में राज्यों की अनुमति है, और यदि कोई ऑपरेशन ऑब्जेक्ट की स्थिति को बदलता है (जो अनुमत संचालन के सेट को बदल देगा)। उन्होंने उल्लेख किया कि यह विशेष रूप से उत्परिवर्तनीय वस्तुओं के लिए महत्वपूर्ण है।

वह जावा से दिनांक और कैलेंडर का उपयोग एपीआई के उदाहरणों के रूप में करता है जहां यह एक समस्या है, लेकिन विनिर्देशों में नहीं जाती है।

एक ठोस (लेकिन सरलीकृत) उदाहरण देने के लिए, एक टीसीपी कनेक्शन पर विचार करें। मूल रूप से दो राज्य होंगे, खुले या बंद होंगे। जब यह बंद हो जाता है, तो आप इसके माध्यम से कुछ भी भेज या प्राप्त नहीं कर सकते हैं, इसलिए उन तरीकों पर कॉल की अनुमति नहीं है।

+0

+1। एक बड़ा "राज्य अंतरिक्ष" मेरे सिर को चोट पहुंचाता है। यही कारण है कि मैं अधिक अपरिवर्तनीय वस्तुओं और सरल डिजाइन पसंद करते हैं। –

1

स्पीकर कहता है कि अगर वस्तु कहां परिवर्तनीय है, तो आपको राज्य की जगह को दस्तावेज करने की आवश्यकता है। उसके बाद वह जावा की तिथि और कैलेंडर एपीआई को इस अर्थ में बुरी तरह से दस्तावेज किया गया है।

मुझे लगता है कि उसका क्या मतलब है कि आपको किसी भी कार्य को दस्तावेज करने की आवश्यकता है जो कोड की स्थिति को संशोधित कर सकता है। साथ ही जब यह इन कार्यों को कॉल करने के लिए एक अच्छा (या बुरा) समय होता है। उदाहरण के बाद, फ़ंक्शन को ऑब्जेक्ट के बाद closed() पर कॉल करना है। अच्छे उत्तर के लिए