Diagrama de classes - ravileal/ezhealth_desktop_-_2020.2_PIES GitHub Wiki
Modelagem de classes
O diagrama de Classes abaixo mostra todas as classes do sistema EzHealth, contendo também todos os seus relacionamentos, métodos e atributos.
Baixe a imagem em alta resolução clicando aqui.
Modelo gerado a partir do Visual Paradigm.
Descrição dos pacotes do diagrama
Model
Neste pacote criamos todas as classes de modelo do sistema. Entre elas: Usuario
, Exercicio
, Refeição
, Alimento
e AbstractAlimentacao
. Nessa camada do sistema implementamos as regras de negócio referentes ao contexto em que o sistema está inserido. A maioria das classes deste pacote está como uma classe concreta para sua instanciação e possui apenas uma classe abstrata (AbstractAlimentacao
) para representar de forma geral atributos que estão em comum entre classes de alimento e refeição.
View
Para a classe de model criamos dois layouts principais. Esses layouts servem como modelos que podem ser estendidos para as demais classes que necessitem usa-los. Existem apenas dois layouts no sistema, o layout principal nomeado de LayoutMain
e o layout de popus nomeado de LayoutPopup
. Eles representam respectivamente, os modelos que devem servir para apresentação principal das telas, como a home, e para apresentação de telas de pop up, utilizando JDialog
, como é o caso da tela pop up editar exercício. As demais classes desse pacote são classificadas entre "Telas" e "Popups", com cada uma estendendo o LayoutMain
para as "Telas" e o LayoutPopup
para os "Popups".
Controller
Para realizar a implementação dos controladores do projeto utilizamos a interface CRUD
do pacote Util
, tornando obrigatório a construção do escopo das operações essenciais. Além das operações necessárias cara classes controller deverá conter os métodos necessários dependendo de seu contexto. Para realizar a validação de dados e tratamento de erros foram utilizadas exceções criadas no pacote Validation
. As exceções serão "levantadas" de acordo com sua necessidade e deverão ser tratadas no pacote View
apresentando para o usuário uma mensagem que auxilie ele a realizar o fluxo correto na aplicação.
Util
O pacote Util foi criado com o intuito de criar classes e interfaces utilitárias para o resto do sistema. Seu conteúdo pode variar de acordo com a necessidade de expansão das classes utilitárias que forem necessárias. Essas decisões devem ser feitas para cada membro da equipe. Na versão atual do sistema este pacote possui quatro classes e uma interface, sendo essa interface, nomeada de CRUD
, que foi utilizada no pacote Controller
descrito anteriormente. Os demais itens são classes que auxiliam na implementação dos viewers, como é o caso da classe ViewUtils
, DragListener
e DatasFormatadas
. Já a classe Popular
auxilia as classes do pacote Repository
que será descrito mais à frente.
Repository
Esse pacote possui classes com a responsabilidade de armazenarem os dados do sistema localmente na memória. Assim com o foi dito antes, essas classes utilizam o singleton Popupar
que está no pacote Util
para realizar a criação de objetos no sistema. Além disso, as classes desse pacote implementam as operações básicas descritas na interface "CRUD" do pacote Util
. Essa classe trabalha em conjunto com as classes do pacote Model
e pacote Controller
para realizar buscar, cadastrar, atualizações e remoções dentro do sistema.