LoslegenKostenlos starten

Einen Factory-Methodenansatz bauen

Jetzt, da du bereit bist, mit dem Erstellen von Factory-Methoden loszulegen, beginnst du mit einer Checkout-Klasse nach dem Factory-Method-Entwurfsmuster. Das folgende Customer-Interface wurde bereits für dich definiert, zusammen mit den konkreten Produkten RewardsMember und NewCustomer. Schau es dir unten an!

class Customer(ABC):
  @abstractmethod
  def make_payment(self, price):
    pass

class RewardsMember(Customer):
  def make_payment(self, price):
    print(f"""Total price for rewards member is 
          ${price * .90}, which is 10% off""")

class NewCustomer(Customer):
  def make_payment(self, price):
    print(f"""Total price for new customer is ${price}""")

Diese Übung ist Teil des Kurses

<Kurs>Fortgeschrittene objektorientierte Programmierung in Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • Erstelle eine Factory-Methode _get_customer(), die einen customer_type übernimmt und ein Objekt des passenden konkreten Produkts zurückgibt.
  • Verwende in der Methode complete_transaction() die zuvor definierte Factory-Methode, um einen Kunden zurückzugeben, und führe dann mit dem in make_payment() übergebenen price die Zahlung aus.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

class Checkout:
  # Create a _get_customer() factory method 
  def ____(self, customer_type):
    if ____ == "Rewards Member":
      return ____()
    elif ____ ____ "New Customer":
      return ____()
  
  # Define the complete_transaction() method
  def complete_transaction(self, customer_type, price):
    customer = ____.____(____)
    ____.____(____)
Code bearbeiten und ausführen