Bygga en fabriksmetod
Nu är det dags att börja bygga fabriksmetoder på riktigt. Du börjar med att skapa en Checkout-klass med hjälp av fabriksmetodens designmönster. Gränssnittet Customer har redan definierats åt dig, tillsammans med de konkreta produkterna RewardsMember och NewCustomer. Ta en titt nedan!
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}""")
Den här övningen är en del av kursen
Objektorienterad programmering i Python – fortsättningskurs
Övningsinstruktioner
- Skapa en fabriksmetod
_get_customer()som tar emot encustomer_typeoch returnerar ett objekt av lämplig konkret produkt. - I metoden
complete_transaction()använder du den tidigare definierade fabriksmetoden för att returnera en kund och sedan genomföra en betalning med detpricesom skickas in till metodenmake_payment().
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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 = ____.____(____)
____.____(____)