Membangun sebuah factory method
Sekarang setelah Anda siap mulai membangun factory method, Anda akan memulainya dengan membuat kelas Checkout, menggunakan pola desain factory method. Antarmuka Customer berikut telah didefinisikan untuk Anda, bersama dengan produk konkret RewardsMember dan NewCustomer. Periksa di bawah ini!
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}""")
Latihan ini adalah bagian dari kursus
Pemrograman Berorientasi Objek Tingkat Menengah di Python
Petunjuk latihan
- Buat metode factory
_get_customer()yang menerimacustomer_type, dan mengembalikan objek dari produk konkret yang sesuai. - Di metode
complete_transaction(), gunakan factory method yang telah didefinisikan sebelumnya untuk mengembalikan seorang pelanggan, lalu lakukan pembayaran menggunakanpriceyang diteruskan ke metodemake_payment().
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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 = ____.____(____)
____.____(____)