TMyClass = class(TObject)
private
FMyObject: TObject;
function GetMyObject: TObject;
public
property MyObject: TObject read GetMyObject write FMyObject;
end;
function TMyClass.GetMyObject: TObject;
begin
if FMyObject = nil then
FMyObject := TObject.Create;
Result := FMyObject;
end;
कभी-कभी, "मायऑब्जेक्ट" आंतरिक रूप से नहीं बनाया जाता है लेकिन बाहरी रूप से बनाया गया है और पैरामीटर को असाइन किया गया है। यदि यह ऑब्जेक्ट बाहरी रूप से बनाया गया है, तो मैं इसे इस संदर्भ में मुक्त नहीं कर सकता।ऑब्जेक्ट-फ़ील्ड प्रकार जीवन-चक्र को नियंत्रित करने का सबसे अच्छा तरीका कौन सा है?
क्या मुझे एक टीएलिस्ट बनाना चाहिए और उन सभी वस्तुओं में जोड़ें जो आंतरिक रूप से बनाए गए थे और विनाशक पर सब कुछ नष्ट कर चुके थे?
अगर मैं आंतरिक रूप से बनाया गया है या नहीं तो पैरामीटर के जीवनकाल को मैं कैसे नियंत्रित कर सकता हूं? आप क्या करने का सुझाव देते हैं? क्या ऐसा करने के लिए कोई पैटर्न है?
यदि इसका निजी एक्सेस संशोधक है तो MyObject को बाहरी रूप से कैसे बनाया जा सकता है? इस कक्षा में कुछ भी नहीं है इस संपत्ति को – heximal
@heximal देखता है: कन्स्ट्रक्टर इंजेक्शन द्वारा सबसे अधिक संभावना (उदाहरण कोड में नहीं)। – jpfollenius
@heximal: क्षेत्र निजी है, संपत्ति सार्वजनिक है और पढ़/लिखती है, यानी इसे 'Obj.MyObject: = TSomeObject.Create;' जैसे उपयोग किया जा सकता है। – ain