2015-01-21 15 views
10

Pracuję z JavaFx TableView i stwierdziłem, że istnieje kilka klas do użycia TableView na przykład SimpleStringProperty, StringProperty, SimpleBooleanProperty i BooleanProperty, itp. Teraz zastanawiam się, który z nich użyć do TableView albo SimpleStringProperty lub tylko StringProperty i jaka jest między nimi różnica.Różnica między SimpleStringProperty a StringProperty

+3

Pytanie jest jasne i zwięzłe, głosowanie na ponowne otwarcie. – jewelsea

+1

yepp, szukałem odpowiedzi w Internecie na ten temat. – Tomasz

Odpowiedz

13

StringProperty to abstrakcyjna klasa bazowa dla obserwowalnych właściwości ciągów, SimpleStringProperty to konkretna implementacja.

Zasada jest taka:

  1. Pokaż StringProperty w API
  2. Zastosowanie SimpleStringProperty jako konkretnej implementacji w kodzie

Czasami zobaczyć kod JavaFX sam createing anonimowych klas wewnętrznych z StringPropertyBase i Powodem tego jest to, że jest trochę bardziej skuteczny w pamięci, ale nic, co normalnie musisz sobie zawracać.

+1

A może bardziej szczegółowo: 'StringProperty'jest klasą podstawową dla wszystkich zapisywalnych właściwości łańcuchowych. – eckig

+0

@tomsontom Jeśli mam zamiar użyć SimpleStringProperty, dlaczego nie miałbym używać tego samego w definicji API i klasy? – simpleuser

+1

To jest lekcja 1 w projektowaniu interfejsu API, a orientacja obiektowa dostarcza tylko tyle informacji, ile jest wymaganych w interfejsie API, co pozwala na przełączanie elementów wewnętrznych w przyszłości bez naruszania użytkowników interfejsu API – tomsontom