สมมติว่าคุณต้องการออกแบบระบบที่จอดรถ ที่จอดรถมีที่จอดรถสามแบบ ได้แก่ ใหญ่ กลาง และเล็ก และมีจำนวนช่องที่แน่นอนสำหรับแต่ละขนาด สร้างคลาสชื่อ OurParkingSystem ด้วยสองวิธี -
-
คอนสตรัคเตอร์ (ใหญ่ กลาง เล็ก) − คอนสตรัคเตอร์นี้ใช้จำนวนช่องที่มีอยู่สำหรับพื้นที่ต่างๆ และเริ่มต้นวัตถุของคลาส OurParkingSystem
-
addCar(carType) − วิธีนี้จะตรวจสอบว่ามีพื้นที่จอดรถของ carType ที่ระบุสำหรับรถที่ต้องการใส่ในที่จอดรถหรือไม่
สามช่องใหญ่ กลาง หรือเล็ก แทนด้วย 1, 2 และ 3 ตามลำดับ ข้อจำกัดคือรถสามารถจอดได้เฉพาะในที่จอดรถหาก carType ตรงกันเท่านั้น หากไม่มีที่ว่าง ให้คืนค่าเท็จ มิฉะนั้น ให้จอดรถในพื้นที่ขนาดนั้นแล้วคืนค่าเป็น True
หากมีที่ว่างสำหรับรถใหญ่ 2 ที่ ไม่มีที่สำหรับรถขนาดกลาง และ 1 ที่สำหรับรถเล็ก การเรียกคอนสตรัคเตอร์จะเป็นเหมือน OurParkingSystem(2, 0, 1) และถ้าเราเรียก addCar เช่น −
addCar(3) − เพิ่มรถเล็ก 1 คันคืนจริง
addCar(2) − ไม่มีที่ว่างสำหรับเพิ่มรถขนาดกลาง ให้คืนค่าเท็จ
addCar(3) − ไม่มีที่ว่างสำหรับเพิ่มรถขนาดเล็กคันใหม่ ดังนั้นคืนค่าเท็จ
addCar(1) − เพิ่มรถใหญ่ 1 คัน คืนทุนจริง
addCar(1) − เพิ่มรถใหญ่อีกคันคืนจริง
addCar(1) − ไม่มีที่ว่างสำหรับรถใหญ่คันอื่น ดังนั้นส่งคืนเท็จ
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
กำหนดฟังก์ชัน constructor() จะใหญ่ กลาง เล็ก
-
sp :=รายการเช่น [0,big,medium,small]
-
กำหนดฟังก์ชัน addCar() นี่จะเป็น carType
-
ถ้า sp[carType]> 0 แล้ว
-
sp[carType] :=sp[carType] - 1
-
คืนค่า True
-
-
คืนค่าเท็จ
ตัวอย่าง (Python)
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
class OurParkingSystem: def __init__(self, big, medium, small): self.sp = [0,big,medium,small] def addCar(self, carType): if(self.sp[carType] >0 ): self.sp[carType] -= 1 return True return False ps = OurParkingSystem(2, 0, 1) print(ps.addCar(3)) print(ps.addCar(2)) print(ps.addCar(3)) print(ps.addCar(1)) print(ps.addCar(1)) print(ps.addCar(1))
อินพุต
ps.addCar(3) ps.addCar(2) ps.addCar(3) ps.addCar(1) ps.addCar(1) ps.addCar(1)
ผลลัพธ์
True False False True True False