Je suis un peu confus en ce qui concerne la programmation orientée objet pour une application à 3 niveaux, par exemple. Voici juste un petit exemple de ce que j'essaie de faire (je vais raccourcir la conception de la base de données pour le rendre simple). Supposons que je fais un système de help desk de billet. Un ticket a une description, une personne responsable, une date d'échéance, et bien sûr un identifiant (unique).Comment définir l'ID dans le code orienté objet
Supposons que l'ID est juste une colonne IDENTITY de type integer et obtient sa valeur automatiquement (SQL Server). C'est-à-dire qu'il obtient sa valeur seulement après qu'une insertion a été faite.
Maintenant, juste un exemple de pseudo-code (il peut ne pas être correct, alors ne laissez pas la syntaxe vous déranger, juste essayer d'obtenir une réponse sur la façon de stocker l'ID).
Je pourrais facilement créer une classe de billets
public class Ticket
{
private string m_description;
private date m_duedate;
private string m_responsible;
private int m_id; //should this be read only ??? or...how
//then I can have a bunch of Properties to get/set these private variables
public Property Responsible{
get
{ return m_responsible; }
set
{ m_responsible = value; }
}
//and so on..again dont worry about syntax. Now should I have a get/set for the ID?
}
Ok donc j'ai cette classe appelée ticket..but ce qui se passe lorsque je crée un objet de billets et besoin pour l'insérer de mon BLL (couche logique métier)
Bll b = new Bll();
Ticket t = new Ticket();
t.Responsible = someString;
t.DueDate = someDate;
t.Description = someLongString;
//use the BLL to create a ticket object and pass it to the DAL ?
//then assign the ID from the database to t.ID ???
t.ID = bll.InsertTicket(t);
// qui est passer à la BLL, qui fait son travail, et il passe à la DAL fait une instruction INSERT puis retourne le numéro d'identification donné par la base de données.
Donc, ma question est de savoir comment ou quand dois-je attribuer t.ID ou dois-je même donné après son insertion, je suis fait. Je suis toujours confondu avec la POO parce que j'ai tendance à penser que cela complique les choses plus que simplement passer tout un tas de paramètres.
Ok, donc après quelqu'un peut m'aider à comprendre si j'ai besoin d'un get/set sur l'ID et si je devrais transmettre cette valeur à mon interface. Ma deuxième question concerne les mises à jour? Supposons qu'un utilisateur final trouve un ticket, donc sur mon interface je récupère des données de ticket et quelqu'un veut mettre à jour dites la description et la date d'échéance. Lorsque je "Soumets" ces changements, devrais-je simplement créer un objet ticket, définir toutes les valeurs de propriété get/set et c'est tout? Ou devrais-je simplement passer le numéro d'identification et tous les paramètres à mon BLL et le laisser manipuler tout cela?
J'espère que tout cela a du sens!
Merci beaucoup les gars!
Édition de @Peter Lillevold: "orienté" est l'orthographe britannique la moins utilisée; Ce n'est pas une erreur. –