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 12. É 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 2008-12-21