J'écris une sorte de magasin en ligne et j'ai in Comment puis-je ajouter une certaine implémentation de admin code> classe où je veux ajouter un nouvel employé: employé_type code > Paramètre Je souhaite passer l'un des Employee Code> Mise en œuvre de la classe abstraite ( pilote code>, consultant code>, etc.). Mais dans la liste ci-dessus, elle ne crée que Employee code> instance de classe. P> employé code> ? p> p>
3 Réponses :
Il suffit d'utiliser post code> comme constructeur pour un nouvel employé
__ add_emloyee code>
__add_employee("john", "10000", Driver)
Dans Post Paramètre, je veux passer une réalisation de la classe abstraite (pilote, consultant, etc.). Mais dans la liste ci-dessus, il ne crée que l'instance de classe des employés. Comment puis-je ajouter une certaine implémentation d'employé de cette manière? P>
ERR ... Qu'en est-il de l'utilisation du paramètre code> POST CODE> ???? P>
class Admin(): # preferably use a single leading underscore (convention for # "implementation" attributes, ie "protected"), # there are __very__ few real use cases for # `__private` attributes _emloyees = {} # 1. make te method public so we can use it # 2. rename 'post' to something meaningfull # (here you want to pass a class) # 3. and of course: __use this param__ def add_emloyee(self, name, surname, salary, employee_type): new_employee = employee_type(name, surname, salary) self.__employees.append(new_employee) # and pass the correct class, of course a = Admin() a .add_employee("foo", "bar", 200000, Consultant)
Merci d'avoir répondu. Oui, je dois être d'accord avec toutes les déclarations. Mais je ne le déploierai nulle part. Ce n'est qu'un travail de laboratoire pour étudier l'UML et l'architecture.
@Pavelantspovich et ceci est en effet typique des exemples de conception totalement inutilés trouvés dans UML ou des "manuels" similaires (ressemble à des personnes qui écrivent ces "manuels" n'ont jamais écrit une demande réelle). Fwiw Je suis un peu soupçonné quelque chose comme ça, et en ce qui me concerne, c'est une raison très convaincante de signaler ces défauts - si vous voulez apprendre "l'architecture" (le mot battage pour "conception de base") au moins apprendre des choses Cela a du sens dans le monde réel ;-)
Je pense que vous recherchez le modèle d'usine
@Tomerikoo à Python Le motif d'usine est intégré.