Створення фабричного методу
Тепер, коли ви готові спробувати створення фабричних методів, почніть зі створення класу Checkout, використовуючи шаблон проєктування factory method. Нижче для вас уже визначено інтерфейс Customer, а також конкретні продукти RewardsMember і NewCustomer. Ознайомтеся з ними!
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}""")
Ця вправа є частиною курсу
Середній рівень об'єктно-орієнтованого програмування в Python
Інструкції до вправи
- Створіть фабричний метод
_get_customer(), який приймаєcustomer_typeі повертає об'єкт відповідного конкретного продукту. - У методі
complete_transaction()скористайтеся раніше визначеним фабричним методом, щоб повернути клієнта, а потім здійсніть оплату, передавшиpriceдо методуmake_payment().
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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 = ____.____(____)
____.____(____)