2015-01-21 26 views
10

Sto lavorando con JavaFx TableView e ho rilevato che esistono alcune classi per utilizzare un TableView ad esempio SimpleStringProperty, StringProperty, SimpleBooleanProperty e BooleanProperty, ecc. Ora mi chiedo quale utilizzare per TableView sia SimpleStringProperty o solo StringProperty e quali sono le differenze tra di loro.Differenza tra SimpleStringProperty e StringProperty

+3

La domanda è chiara e concisa, con la votazione di riapertura. – jewelsea

+1

yepp, stavo cercando su internet la risposta a questo. – Tomasz

risposta

13

StringProperty è la classe di base astratta per le proprietà di stringa osservabili, SimpleStringProperty è un'implementazione concreta.

La regola è:

  1. Visualizza StringProperty nella vostra API
  2. Usa SimpleStringProperty come l'attuazione concreta nel codice

A volte vedere il codice JavaFX stesso createing classi interne anonime da StringPropertyBase e la ragione di questo è che è un po 'più efficiente in termini di memoria, ma nulla di cui normalmente devi preoccuparti.

+1

O per essere più specifici: 'StringProperty'è la classe base per tutte le proprietà della stringa scrivibile. – eckig

+0

@tomsontom Se userò una proprietà SimpleString, perché non dovrei usare lo stesso nell'API e nella definizione della classe? – simpleuser

+1

Questa è la lezione 1 nella progettazione dell'API e l'orientamento dell'oggetto fornisce solo quante più informazioni necessarie nell'API, questo ti consente di cambiare gli interni in futuro senza rompere gli utenti dell'API – tomsontom