ÎncepețiÎncepe gratuit

Construirea unui factory method

Acum că ești pregătit să te apuci de treabă, vei crea o clasă Checkout folosind șablonul de proiectare factory method. Interfața Customer a fost deja definită pentru tine, împreună cu produsele concrete RewardsMember și NewCustomer. Aruncă o privire mai jos!

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

Acest exercițiu face parte din cursul

Programare orientată pe obiecte intermediară în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează un factory method _get_customer() care primește un parametru customer_type și returnează un obiect al produsului concret corespunzător.
  • În metoda complete_transaction(), folosește factory method-ul definit anterior pentru a returna un client, apoi efectuează o plată apelând metoda make_payment() cu parametrul price primit.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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 = ____.____(____)
    ____.____(____)
Editează și rulează codul