bonjour,
J'ai une petite questions concernant les méthodes d'une classe.
Dans mon application, l'utilisateur va pouvoir créer des salariés.
Il existe une classe "salarié". dois je mettre une methode creer_salarié, supprimer_salarié ou non?
bonjour,
J'ai une petite questions concernant les méthodes d'une classe.
Dans mon application, l'utilisateur va pouvoir créer des salariés.
Il existe une classe "salarié". dois je mettre une methode creer_salarié, supprimer_salarié ou non?
Bonjour,
la notion de factory (usine) est souvent utiliser en POO pour ce genre de méthodes.
Le principe : avec ta classe Salarie (qui contient les méthodes propres a un salarie), tu as une autre classe SalarieFactory qui contient des methodes comme getAllSalaries(), createSalarie(), destroySalarie() etc ...
Mais aussi déjà vu des gens qui ne voulaient pas s'embêter avec des classes factory, et qui mettaient tout dans une seule classe Salarie (un salarié aurait le droit de se faire naître et de se faire mourrir ?)
Voilà, j'espère que j'ai pu t'aider un peu.
Si des experts de la POO passent par là, ils te renseigneront sûrement mieux que moi.
a+
Bonjour, de passage et sans etre un expert je me permet un avis.
d'accord avec nako, ce genre de fonctionnalité (création et suppression d'une occurence) est plutot attribuée à un objet externe, un gestionnaire (ou manager). Mais ce n'est pas obligatoire (ça dépends de la taille et la complexité de l'application)
cela dit,
si on rentre dans le détail il me semble que le factory est une notion plus utilisée pour l'instanciation des objets (dans le sens de l'allocation mémoire) que dans le sens ajouter une donnée dans une table (donnée persistante)
après une certaine reflexion, je pense qu'il faut mettre les classes creer() et supprimer().
Cependant, dois-je les mettre dans la classe ou dans la classe "liée".
ex:
un service a des rotations, on peut en créer pour chaque service: dois-je mettre créer_rotations() dans la classe service ou dans la classe rotation.
merci
pour ce que j'en sais,
les deux sont justes.
Personnellement je n'aime pas les methode de classe (ou methode statique), je prefère laisser la responsabilité de la gestion des données à une autre classe. dans ton cas, mettre creer_rotation dans service a du sens. il faudra juste s'assurer qu'il est bien clair que c'est la classe service qui a le role de "gestionnaire des rotations", autrement di que la methode supprimer_rotation ne vas pas se retrouver dans une autre classe...
Personnellement, je ne peux que te conseiller d'attribuer la responsabilité de créer ou supprimer un objet à une autre classe (genre SalarieManager) qui pourrait également pourquoi contenir la liste de tous les salariés. Imagine que tu doives tester la non-existence d'un salarié avant de le créer... ce sera typiquement une responsabilité de la classe SalarieManager qui elle connait tous les salaries existant...
PS: il ne vaut mieux pas donner le nom Factory à cette classe pour éviter de s'embrouiller avec le Design Pattern Factory, AbstractFactory...
Partager