Crear un método fábrica
Ahora que estás listo para empezar a crear métodos fábrica, vas a comenzar creando una clase Checkout usando el patrón de diseño factory method. A continuación tienes definida la interfaz Customer, junto con los productos concretos RewardsMember y NewCustomer. ¡Échales un vistazo!
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 ejercicio forma parte del curso
Programación orientada a objetos intermedia en Python
Instrucciones del ejercicio
- Crea un método fábrica
_get_customer()que reciba uncustomer_typey devuelva un objeto del producto concreto apropiado. - En el método
complete_transaction(), utiliza el método fábrica definido anteriormente para devolver un cliente y, después, realiza un pago usando elpriceque se pasa al métodomake_payment().
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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 = ____.____(____)
____.____(____)