Bons padrões de design dentro do JavaFX - MVC?

5

Eu usei muito JavaFX e estou familiarizado com os aspectos técnicos. Agora, à medida que me deparo com um aplicativo muito grande com centenas de visualizações, quero ter certeza de começar strong com um design sólido. Este é apenas um aplicativo cliente, o back-end está em outro lugar.

Eu também devo mencionar que este é um aplicativo MDI (Multiple Document Interface), que só piora a complexidade.

Pule para o tl; dr se não quiser ler o seguinte discurso.

Na minha opinião, os controladores não devem se comunicar uns com os outros. Cada parte do sistema deve ser modular e inconsciente das outras partes, com algum controlador mestre reunindo-as. Não tenho certeza de como isso é possível no JavaFX. Isso é agravado pelo fato de haver muitas instâncias de uma view / controller FXML dentro do MDI (eu chamarei de MDIRoot).

Este exemplo AQUI é a coisa mais próxima que eu gostei, mas há um alguns problemas óbvios. O principal problema com isso está no exemplo, todos os controladores existirão pela duração do programa. Mas muitos aplicativos semi-complexos terão controladores FXML que não existem em todos os momentos. Então, como eu inicializo a instância MainController dos outros controladores? A outra questão óbvia é que, no meu caso, pode haver muitas instâncias de um controlador. Então eu preciso do MainController para ter uma lista para cada controlador. O terceiro problema é que o MainController é apenas o controlador FXML para a raiz do projeto, que no meu caso (MDI) tem sua própria lógica. Não deveria ser algo digno de ser um controlador "principal" completamente independente de sua própria lógica, e focar inteiramente em encapsular os outros controladores?

tl: dr: Estou tendo problemas para encontrar uma maneira de usar efetivamente o MVC (ou MVP, ou qualquer coisa que seja sugerida realmente) para um aplicativo MDI de grande escala no JavaFX. Se alguém tiver exemplos ou entrada ou qualquer coisa eu agradeceria. Amostras de código seriam boas, ou até mesmo explicações específicas do JavaFX sobre como implementar um design agradável quando o aplicativo fica grande (com o único requisito de que os controladores não conversem entre si).

    
por skex 09.11.2016 / 01:12
fonte

1 resposta

1

Confira este quadro doce, eu me apaixonei por isso e eu acho que você também vai!

link

Aqui está o meu exemplo:

link

Espero que ajude ...

    
por 10.11.2016 / 00:52
fonte