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
Instrucțiuni pentru exercițiu
- Creează un factory method
_get_customer()care primește un parametrucustomer_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 metodamake_payment()cu parametrulpriceprimit.
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 = ____.____(____)
____.____(____)