J'ai un objet(Objet1) qui contient une référence vers un autre objet(Objet2 pour faire simple) et qui est responsable de sa création/destruction. Cependant, il peut fournir la référence "à l'extérieur".
autant je peux rendre private les constructor et destructor de la classe de Objet2 et ainsi fournir une interface public clean, autant si Objet2 est typecast en TObject et Free est utilisée je l'ai dans l'os.
avant de rajouter un moyen dans la classe de vérifier si l'appel à destroy est valide où pas ( par exemple mettre une variable private qui ne pourrait être accédée que par l'objet responsable du cycle de vie, par exemple une référence à Objet1 qui serait mise à nil au moment de l'appel à Free par Objet1 justement et de tester dans destroy si Reference == nil), je me demandais si y avait un moyen autre qui m'aurait échappé.
et la méthode entre paranthèse a l'inconvénient d'être une méthode dynamique. alors qu'elle serait là pour prévenir une erreur statique, c a d un appel d'une méthode que le programmeur n'aurait pas du faire.
Partager