CommencezCommencez gratuitement

Créer une méthode d'usine

Maintenant que vous êtes prêt à vous lancer dans la création de méthodes d'usine (factory methods), commencez par créer une classe Checkout en utilisant le patron de conception de la méthode d'usine. L'interface Customer suivante a été définie pour vous, ainsi que les produits concrets RewardsMember et NewCustomer. Voyez ci-dessous !

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

Cette activité fait partie du cours

Programmation orientée objet intermédiaire en Python

Voir le cours

Instructions de l’exercice

  • Créez une méthode d'usine _get_customer() qui prend un customer_type et retourne un objet du produit concret approprié.
  • Dans la méthode complete_transaction(), utilisez la méthode d'usine définie précédemment pour retourner un client, puis effectuez un paiement en utilisant le price passé à la méthode make_payment().

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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 = ____.____(____)
    ____.____(____)
Modifier et exécuter le code