ПочатиПочніть безкоштовно

Створення фабричного методу

Тепер, коли ви готові спробувати створення фабричних методів, почніть зі створення класу 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 = ____.____(____)
    ____.____(____)
Редагувати та запускати код