Kom igångKom igång gratis

Bygga en fabriksmetod

Nu är det dags att börja bygga fabriksmetoder på riktigt. Du börjar med att skapa en Checkout-klass med hjälp av fabriksmetodens designmönster. Gränssnittet Customer har redan definierats åt dig, tillsammans med de konkreta produkterna RewardsMember och NewCustomer. Ta en titt nedan!

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}""")

Den här övningen är en del av kursen

Objektorienterad programmering i Python – fortsättningskurs

Visa kurs

Övningsinstruktioner

  • Skapa en fabriksmetod _get_customer() som tar emot en customer_type och returnerar ett objekt av lämplig konkret produkt.
  • I metoden complete_transaction() använder du den tidigare definierade fabriksmetoden för att returnera en kund och sedan genomföra en betalning med det price som skickas in till metoden make_payment().

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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 = ____.____(____)
    ____.____(____)
Redigera och kör kod