ComeçarComece de graça

Construindo um factory method

Agora que você está pronto para começar a criar factory methods, você vai iniciar criando uma classe Checkout, usando o padrão de projeto factory method. A interface Customer a seguir foi definida para você, junto com os produtos concretos RewardsMember e NewCustomer. Confira abaixo!

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}""")

Este exercício faz parte do curso

Programação Orientada a Objetos Intermediária em Python

Ver curso

Instruções do exercício

  • Crie um método de fábrica _get_customer() que receba um customer_type e retorne um objeto do produto concreto apropriado.
  • No método complete_transaction(), use o factory method definido anteriormente para retornar um cliente e, em seguida, faça um pagamento usando o price passado para o método make_payment().

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

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 = ____.____(____)
    ____.____(____)
Editar e executar o código