Fabrikmuster in Python
- Implementieren Sie die Factory-Methode in Python
- Vorteile der Factory-Methode in Python
- Nachteile der Factory-Methode in Python
Factory-Designmuster gehören zur Kategorie der schöpferischen Designmuster. Erstellungsentwurfsmuster bieten viele Techniken für die Objekterstellung, was zu mehr Wiederverwendbarkeit und Flexibilität des Codes führt.
Die Factory-Methode ist eine Methode zum Erstellen von Objekten ohne Angabe ihrer konkreten Klasse.
Es bietet Abstraktion und Polymorphismus in einer Weise, dass eine einzelne übergeordnete Klasse (abstrakte Klasse oder die Schnittstelle) die generische Struktur von Objekten definiert und die Unterklasse die vollständige Implementierung zum Instanziieren des Objekts bereitstellt.
Implementieren Sie die Factory-Methode in Python
Im folgenden Code ist abc
ein Paket, das für Abstract Base Class steht, aus dem wir ABCMeta
(um eine abstrakte Klasse zu deklarieren) und abstractstaticmethod
(um eine abstrakte statische Methode zu deklarieren) importiert haben.
Wir haben eine generische abstrakte Basisklasse namens Person
definiert, die eine abstrakte statische Methode person_type()
hat.
Die konkret abgeleitete Klasse implementiert diese Methode. Dann haben wir zwei von Person
abgeleitete Klassen namens Student
und Teacher
definiert. Beide Klassen implementieren je nach Bedarf die abstrakte statische Methode person_type()
.
Wir haben die Factory-Methode PersonFactory
für die Erstellung der Objekte einer Person (Schüler oder Lehrer) zur Laufzeit gemäß der Eingabeauswahl des Benutzers verantwortlich erklärt.
Diese Klasse hat eine statische Methode, build_person()
, die den Personentyp als Argument nimmt und das erforderliche Objekt mit ihren Namen konstruiert (Name des Schülers oder des Lehrers).
Beispielcode:
# Python 3.x
from abc import ABCMeta, abstractstaticmethod
class Person(metaclass=ABCMeta):
@abstractstaticmethod
def person_type():
pass
class Student(Person):
def __init__(self, name):
self.name = name
print("Student Created:", name)
def person_type(self):
print("Student")
class Teacher(Person):
def __init__(self, name):
self.name = name
print("Teacher Created:", name)
def person_type(self):
print("Teacher")
class PersonFactory:
@staticmethod
def build_person(person_type):
if person_type == "Student":
name = input("Enter Student's name: ")
return Student(name)
if person_type == "Teacher":
name = input("Enter Teacher's name: ")
return Teacher(name)
if __name__ == "__main__":
choice = input("Enter the Person type to create: ")
obj = PersonFactory.build_person(choice)
obj.person_type()
Ausgang:
#Python 3.x
Enter the Person type to create: Teacher
Enter Teacher's name: Jhon
Teacher Created: Jhon
Teacher
Vorteile der Factory-Methode in Python
- Es fördert die
lose Kopplung
im Code. - Es ist einfach, den Code zu modifizieren, um neue Objekte mit leicht unterschiedlichen Eigenschaften zu instanziieren, ohne den aktuellen Code zu stören.
- Es fördert
Abstraktion
undPolymorphismus
im Code.
Nachteile der Factory-Methode in Python
- Wir können es nur verwenden, wenn die Objekte aus derselben Kategorie mit leicht unterschiedlichen Merkmalen gehören.
- Das Factory-Entwurfsmuster erhöht die Gesamtzahl der Klassen im Code.
- Es reduziert die
Lesbarkeit
des Codes, da die Implementierung aufgrund von Abstraktion verborgen ist.
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn