Para implementar essas alterações, refatorou-se novamente a classe MainWindow, retirando dela a responsabilidade de manter os parâmetros da simulação e, assim, isolando mais a camada de visualização da camada de modelo.
A fim de facilitar o entendimento posterior do código e aumentar a flexibilidade do sistema, nesta refatoração foram introduzidos padrões de projeto e arquiteturais sempre que possível.
Foi criada a classe Configuration para manter a responsabilidade pelos
parâmetros da simulação, implementando o padrão Singleton, garantindo,
assim, que o mesmo objeto é acessado pelos diversos controles da interface e
pelas classes do modelo da simulação.
A classe Simulation foi quebrada em duas: uma responsável pelo controle
da simulação e outra, pela visualização, numa instância do padrão arquitetural
MVC3, onde o modelo são as classes
Environment, Molecule, Path, Type e
Configuration.
A responsabilidade de criar o ambiente de simulação foi retirada da classe
EnvironmentCombo e colocada numa nova classe,
EnvironmentFactory, numa instância do padrão de projeto
Factory Method. Com isso, isolou-se um pouco mais a parte de
visualização da parte de modelo.
O resultado desta refatoração pode ser visto na Figura
.
É possível notar que, mesmo depois da refatoração, ainda há um certo
acoplamento entre o modelo e a visualização da simulação devido à presença
das referências às classes da biblioteca VTK nas classes do modelo. De acordo
com o padrão arquitetural MVC, a camada de visualização deve ter acesso às
classes de modelo, e não o contrário, como ocorre após a refatoração.
![]() |
Luiz Fernando Oliveira Corte Real 2008-11-28