Informal interfaces
Informal interfaces กำหนดชุดของเมธอดที่ทุกคลาสที่ implement interface นั้นจะต้องนิยามไว้ ด้านล่างนี้คือคลาสชื่อ Supplier ที่ทำหน้าที่เป็น informal interface เพื่อให้ YogurtSupplier ปฏิบัติตามสัญญาที่ Supplier interface กำหนดไว้ จำเป็นต้องนิยามเมธอด take_order() และ make_delivery() ในแบบฝึกหัดนี้ ให้ฝึกทำสิ่งนั้น
class Supplier:
def take_order(self, product_name, quantity):
pass
def make_delivery(self, order_id, location):
pass
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Object-Oriented Programming ใน Python ระดับกลาง
คำแนะนำการฝึกหัด
- ในคลาส
YogurtSupplierให้นิยามเมธอดtake_order()เพื่อเพิ่มคำสั่งซื้อลงใน dictionaryself.orders - ทำให้สัญญาที่
Supplierinterface กำหนดไว้ครบถ้วน โดยนิยามเมธอดmake_delivery()เพื่อแสดงข้อความและลบคำสั่งซื้อที่เก็บด้วยorder_idออกจากself.orders
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
class YogurtSupplier:
def __init__(self):
self.orders = {}
# Finish defining the take_order() method
____:
self.____[f"{product_name}_{quantity}"] = {
"product_name": ____, "quantity": ____
}
# Implement a make_delivery() abstract method
____:
print(f"Delivering order: {order_id} to {location}")
del ____.____[____]