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
Instructions de l’exercice
- Créez une méthode d'usine
_get_customer()qui prend uncustomer_typeet 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 lepricepassé à la méthodemake_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 = ____.____(____)
____.____(____)