Based on the requirements and use cases, identify the main objects of the system and analyze how they interact and relate to each other...
My objects are
Parkinglots: It will be the first place where cars will wait and request for a parking spot o a specific parking floor.
ParkingFloor: Will assign A spot on the free spot of that specific floor.
Parking Spot : Will assign a spot according to the size of the vehicle. Also check for a Full by rejecting entry.
Parking Ticket: Will assign a ticket based on entry time and exit time.
Vehicle: Represents vehicles entering the system (motorcycle, car, truck).
PricingStrategy: Responsible for calculating parking fees based on duration.
For each class, define the attributes (data) it will hold and the methods (functions) that operate on the attributes. Ensure they align with the object's responsibilities and adhere to the principle of encapsulation. Write your code in the code editor below.
Explain design tradeoffs you considered. Check and explain whether your design adheres to SOLID principles. Explain how your design can handle changes in scale and whether it would be easy to extend with new functionalities. Identify areas for future improvement...