Estou desenvolvento um sistema, para mim mesmo, para treinar Java.
Tenho em uma camada DAO as seguintes classes com CRUD
public class VeiculoBO {
public VeiculoBO() {
}
protected void create(Veiculo veiculo) {
...
}
protected Collection retriveAll() {
...
}
protected void update(Veiculo veiculo) {
...
}
protected void delete(Veiculo veiculo) {
...
}
}
e
public class ProprietarioBO {
public ProprietarioBO() {
}
protected void create(Proprietario proprietario) {
...
}
protected Collection retriveAll() {
...
}
protected void update(Proprietario proprietario) {
...
}
protected void delete(Proprietario proprietario) {
...
}
}
Os métodos eu deixei protected, pois apenas a DAOFactory, que está na mesma camada, vai poder acessá-los e “repassá-los” para outra camada.
Neste caso compensa criar uma classe assim :
public abstract class DAO {
public DAO() {
}
protected abstract void create(Object objeto);
protected abstract Collection retriveAll();
protected abstract void update(Object objeto);
protected abstract void delete(Object objeto);
}
e fazer as outras classes serem filhas da DAO
public class VeiculoDAO extends DAO{
public VeiculoDAO() {
Collection c;
}
protected void create(Object objeto) {
Veiculo veiculo = (Veiculo)objeto;
...
}
protected Collection retriveAll() {
...
}
protected void update(Object objeto) {
Veiculo veiculo = (Veiculo)objeto;
...
}
protected void delete(Object objeto) {
Veiculo veiculo = (Veiculo)objeto;
...
}
}
public class ProprietarioDAO extends DAO{
public ProprietarioDAO() {
Collection c;
}
protected void create(Object objeto) {
Proprietario proprietario = (Proprietario)objeto;
...
}
protected Collection retriveAll() {
...
}
protected void update(Object objeto) {
Proprietario proprietario = (Proprietario)objeto;
...
}
protected void delete(Object objeto) {
Proprietario proprietario = (Proprietario)objeto;
...
}
}