Bir factory method oluşturma
Artık factory method'lar oluşturmaya başlamak için hazırsın; işe, factory method tasarım desenini kullanarak bir Checkout sınıfı oluşturarak başlayacaksın. Aşağıda, senin için tanımlanmış bir Customer arayüzü ile RewardsMember ve NewCustomer somut ürünleri yer alıyor. Hemen göz at!
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}""")
Bu egzersiz
Python'da Orta Düzey Nesne Yönelimli Programlama
kursunun bir parçasıdırEgzersiz talimatları
customer_typealan ve uygun somut ürünün bir nesnesini döndüren bir_get_customer()factory method'u oluştur.complete_transaction()yönteminde, önce tanımladığın factory method'u kullanarak bir müşteri döndür, ardındanmake_payment()yöntemine verilenpriceile ödemeyi gerçekleştir.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
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 = ____.____(____)
____.____(____)