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
Instruções do exercício
- Crie um método de fábrica
_get_customer()que receba umcustomer_typee 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 opricepassado para o métodomake_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 = ____.____(____)
____.____(____)