Criando propriedades de forma mais eficiente em javafx

Instanciar um objeto imóvel em JavaFX leva mais memória e tempo de processamento do que criar uma propriedade baseada em campo simples. Em muitas classes, as capacidades avançadas de um objecto imóvel JavaFX são apenas ocasionalmente necessário.

Video: A classe Node do JavaFX 2

Existe uma técnica para a criação de propriedades em que os bens próprios objetos não são instanciado até que a propriedade em si acessor é chamado. Dessa forma, o objeto de propriedade não é criada a menos que seja realmente necessário. Aqui estão os detalhes desta técnica:

Declarar um campo privado para armazenar os dados representados pela propriedade.

Por exemplo, para uma propriedade string, você cria um Corda variável. Para o nome da variável, use o nome da propriedade prefixado por um sublinhado, como este:

private final SimpleStringProperty firstName-
  • Criar, mas não instanciar, uma variável privada para representar o objeto propriedade.

    Em outras palavras, declarar a variável, mas não chama o construtor da classe:

    private final SimpleStringProperty firstName-
  • Criar o getter.



    No getter, use um E se declaração para determinar se o objeto existe propriedade. Se isso acontecer, retornar o valor da propriedade. Se isso não acontecer, retornar o valor do campo privado. Por exemplo:

    pública getFirstName final String () {if (firstName == null) return _firstName-elsereturn firstName.get () -}
  • Criar o setter.

    Usar a mesma técnica na setter:

    public final vazio setFirstName (String value) {if (firstName == null) _firstName = valor-elsefirstName.set (valor) -}
  • Criar o acessor propriedade.

    Neste método, primeiro verificar se existe ou não o objeto de propriedade e criar o objeto se ele não existe. Use o valor do campo privado como o valor inicial da propriedade. Em seguida, retornar o objeto:

  • public final StringProperty firstNameProperty () {if (firstName == null) firstName = new SimpleStringProperty (este, "primeiro nome", _firstName) -Retornar firstName-}

    Aqui está o que parece colocar juntos em uma classe chamada Cliente:

    Video: Java - JavaFX[ Controles de formulário ] - Menu

    Classe pública Cliente {String final privado _firstName = "-Privada última SimpleStringProperty firstName-pública getFirstName final String () {if (firstName == null) return _firstName-elsereturn firstName.get () -} void setFirstName (String value) public final {if (firstName == null) _firstName = valor -elsefirstName.set (valor) -} público final StringProperty firstNameProperty () {if (firstName == null) firstName = new SimpleStringProperty (este, "primeiro nome", _firstName) -Retornar firstName-}}

    Publicações relacionadas