[Conception] DAO, CRUD ou SRD ?
Bonjour,
Juste une petite question, dans la littérateure on retrouve très souvent le terme CRUD (Create Retrieve Update Delete) lorsque l'on parle de DAO.
Or il y à deux actions que l'on pourrais regrouper : Create et Update. Dans tous les logiciels existants, on ne vous propose pas de sauver un nouveau projet et de mettre à jour un projet, juste de le sauver.
Pourquoi ne pas proposer la même logique aux|à l'utilisateur du DOA (Save Retrieve, Delete) ?
Comme presque tout ce qui est sauvé utilise un identifiant unique, on pourrais très bien se baser sur cette valeur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
public class MyBean {
private int id;
public MyBean() {
this.id=-1;
}
}
public class MyBeanDaoImpl implements MyBeanDao {
public int save(MyBean myBean) {
if ( myBean.getId()<0 ) {
// INSERT INTO...
} else {
// UPDATE
}
}
} |
Je ne vois pas trop d'inconvénient à cette méthode. Donc, pourquoi parle t'on toujours de CRUD et pas de SRD (Save, Reptrieve, Delete) ?
Et pour la récupération ?
Citation:
Envoyé par
manblaizo
Mais je pense que la distinction est surtout nécessaire d'un point de vue de l'utilisateur qui doit bien savoir ce qu'il fait, une création ou une mise à jour, et peu importe comment tu fais ton implémentation derrière.
Oui c'est sur qu'il doit savoir ce qu'il fait mais pour les développeurs c'est plus imple d'utiliser "MyBeanDao.save(myBean)".. Enfin en même temps faire "if (myBean.getId()<0)" dans le métier ou dans le dao c'est vrai que ça ne change pas grand chose (de toutes façons dans le dao j'aurais crée deux méthodes privées "insertMyBean" et "updateMyBean")
Ok donc.
Mais maintenant pour la récupération, je suppose qu'il est préférable d'écrire
une méthode "findMyBean(int beanId)" et une méthode "findMyBean(...)" ? Mais que mettre comme paramètres dans cette dernière ? Une instance de MyBean qui me sers de pattern ou une clause WHERE valide SQL ?