Falae Pessoal!
Estou com uma dúvida de projeto.
Tenho a seguinte estrutura:
(Estou usando Struts)
ProjectForm.java
public class ProjectForm extends ActionForm {
private String project;
//métodos getters e setters
}
ModelForm.java
public class ModelForm extends ActionForm {
public String project;
public String model;
//métodos getters e setters
}
Acontece q um Model faz parte de um Project e pretendo mostrar ao usuário qual o projeto q determinado modelo está fazendo parte. Vcs acham melhor eu fazer a classe ModelForm herdar de ProjectForm? Não sei se devo separar as coisas ou uní-las, ou seja, qd for pegar no banco de dados eu populo dois Forms ou apenas um Form q já tenha todas as propriedades.
Uma outra analogia seria trabalhar com estados e países. Tenho uma classe CountryForm e StateForm onde, qd eu listar os estados, eu tb mostraria o país q ele pertence.
valeu!
Na verdade é melhor vc separar suas classes de negócio e VOs de seus ActionForms.
Ops! Eu já faço isso Daniel.
É q achei melhor colocar minha dúvida direto.
Considere q meus VOs tem a mesma estrutura de meus forms e nos meus actions eu faço a troca de Forms para VOs e vice-versa.
public class Model {
private String name;
//get & set
}
public class Project {
private String name;
private Model model;
//get & set
}
Que tal?
hmmm…
Isso é uma composição ou agregação? E se for mais de um modelo? eu crio um array?
Se é composição ou agregação vai depender do teu modelo.
Se for um relacionamento 1:n, sugiro usar List ao invés de array.
blz! Valeu Daniel!
Mas nesse caso, eu tendo somente essas duas classes, eu posso dizer q isso seria uma agregação? Se tivesse herdando eu poderia dizer q seria uma composição?
Herança é uma especialização, ou generalização (se for no sentido contrário).
Agregação é um tipo de relacionamento todo-parte, onde um tipo agrega um ou vários de outro tipo. Exemplo:
Nota Fiscal e Itens de Venda
A composição também é todo-parte, mas é mais forte, onde cada lado não existe sem o outro. Exemplo:
Item de Venda e Produto
Pessoa e Coração
hmmmm… agora a última dúvida.
E na hora q eu for fazer um formulário do modelo? Estava pretendo colocar todos os projetos disponíveis em checkbox para possibilitar colocar o mesmo modelo fazendo parte de outros projetos. Como eu faço um ActionForm/VOs para esse caso.
Ficaria assim?
Model:
public class Model {
private String name;
private Project project; //ou private ArrayList projects;
//get & set
}
Project:
public class Project {
private String name;
private Model model; //ou private ArrayList models;
//get & set
}
Para preencher meu ActionForm no HTML eu colocaria o nome do meu objeto e sua respectiva propriedade?
Ex: preenchendo um modelo
<html:text property=“name”/> //preenche o nome do modelo
<html:text property=“project.name”/> //preenche o nome do projeto?
:?: