MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

  • Buat metode factory _get_customer() yang menerima customer_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 menggunakan price yang diteruskan ke metode make_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 = ____.____(____)
    ____.____(____)
Edit dan Jalankan Kode