Erstellen von Eigenschaften Effizienter in JavaFX

eine Eigenschaft Objekt in JavaFX Instanziierungsanwendung nimmt mehr Speicher und Verarbeitungszeit als ein einfaches feldbasierte Eigenschaft zu schaffen. In vielen Klassen werden die erweiterten Funktionen eines JavaFX-Property-Objekt nur gelegentlich benötigt.

Es ist eine Technik zum Erstellen von Eigenschaften, in denen die Eigenschaft selbst instanziert sind keine Objekte, bis die Eigenschaftenaccessor selbst genannt wird. Auf diese Weise wird die Eigenschaft Objekt nicht erstellt, wenn sie tatsächlich benötigt wird. Hier sind die Details dieser Technik:

  1. Deklarieren Sie ein privates Feld die Daten durch die Eigenschaft vertreten zu halten.

    Zum Beispiel für eine String-Eigenschaft, erstellen Sie ein Schnur Variable. Für den Variablennamen, verwenden Sie den Namen der Eigenschaft durch einen Unterstrich voran, wie folgt aus:

    Privat letzte SimpleStringProperty firstName-
  2. Erstellen Sie, aber nicht instanziiert, eine private Variable die Eigenschaft Objekt darzustellen.

    Mit anderen Worten, erklären die Variable aber nicht die Klasse Konstruktor aufrufen:

    Privat letzte SimpleStringProperty firstName-
  3. Erstellen Sie die Getter.

    In der Getter, verwenden ein ob Anweisung, um zu bestimmen, ob das Eigenschaftsobjekt existiert. Ist dies der Fall, stellen Sie den Wert aus der Eigenschaft. Wenn dies nicht geschieht, gibt den Wert des privaten Bereich. Beispielsweise:

    public final String getFirstName () {if (vorName == null) return _firstName-elsereturn firstName.get () -}
  4. Erstellen Sie die Setter.

    Verwenden Sie die gleiche Technik, die in der Setter:

    public final nichtig setFirstName (String value) {if (vorName == null) _firstName = value-elsefirstName.set (Wert) -}
  5. Erstellen Sie die Eigenschaftenaccessor.

    Bei dieser Methode überprüfen, zuerst, ob die Eigenschaft Objekt vorhanden ist, und erstellen Sie das Objekt, wenn es nicht existiert. Verwenden Sie den Wert des privaten Bereich als Anfangswert der Immobilie. Dann schicken Sie das Objekt:

public final String firstNameProperty () {if (vorName == null) vorName = new SimpleStringProperty (this, "vorName", _firstName) -return firstName-}

Hier ist, wie es zusammen in einer Klasse setzen sieht benannt Kunde:

Öffentliche Klasse Kunden {private final String _firstName = "" -privater letzte SimpleStringProperty vorName-public final String getFirstName () {if (vorName == null) return _firstName-elsereturn firstName.get () -} public final nichtig setFirstName (String value) {if (vorName == null) _firstName = value-elsefirstName.set (Wert) -} public final String firstNameProperty () {if (vorName == null) vorName = new SimpleStringProperty (this, "vorName", _firstName) -return vorName -}}

Menü