НачатьНачать бесплатно

Создание фабричного метода

Теперь, когда вы готовы приступить к созданию фабричных методов, начнём с написания класса Checkout, используя паттерн «фабричный метод». Интерфейс 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() используйте ранее определённый фабричный метод, чтобы получить объект покупателя, а затем выполните оплату с помощью метода make_payment(), передав ему значение price.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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 = ____.____(____)
    ____.____(____)
Редактировать и запускать код