In objektorientierten Sprachen verwende ich Klassenvariablen, um zu verfolgen, wie viele Instanzen derzeit generiert werden, indem bei der Konstruktion inkrementiert und bei der Zerstörung dekrementiert wird.Wie protokolliere ich die Anzahl der Instanzen eines Typs?
Ich versuche, ein ähnliches Verhalten in gehen zu implementieren:
package entity
type Entity struct {
Name string
}
func New(name string) Entity {
entity := Entity{name}
counter++
return entity
}
var counter int = 0
func (e *Entity) Count() int {
return counter
}
und das funktioniert auf halbem Weg, wie ich den Zähler nicht über eine destructor verringern kann.
Kann ich die Objektzerstörung irgendwie nachahmen? Wie würde ich die Anzahl der Instanzen korrekt verfolgen?
Gibt es eine eingebaute Methode, um die Referenzzählung für ein Objekt anzuzeigen? –