Class Diagram for the Parking Lot
Learn to create a class diagram for the parking lot system using the bottom-up approach.
In this lesson, we will identify and design classes, abstract classes, and interfaces based on the requirements we have previously gathered from the interviewer in our parking lot system.
Components of a parking lot system
As mentioned earlier, we should design the parking lot system using a bottom-up approach. Therefore, we will first identify and design the classes of the smaller components like vehicles and parking spots. Then, we will create the class of the entire parking lot system, including these smaller components.
Vehicle
Our parking lot system should have a vehicle object according to the requirements. The vehicle can be a car, a truck, a van, and a motorcycle. There are two ways to represent a vehicle in our system:
Enumeration
Abstract class
Enumeration vs. abstract class
The enumeration class creates a user-defined data type that has the four vehicle types as values.
This approach is not proficient for object-oriented design because if we want to add one more vehicle type later in our system, then we would need to update the code in multiple places in our code, and this would violate the Open Closed principle of the SOLID design principle. This is because the Open Closed principle states that classes can be extended but not modified. Therefore, it is recommended not to use the enumeration data type as it is not a scalable approach.
Note: Using enums isn’t prohibited, but just not recommended. Later, we will use the
PaymentStatus
enum in our parking lot design as it won’t require further modifications.
An abstract class cannot instantiate the object and can only be used as a base class. The abstract class for Vehicle
is the best approach. It allows us to create derived child classes for the Vehicle
class. It can be extended easily in case the vehicle type changes in the future.
Level up your interview prep. Join Educative to access 80+ hands-on prep courses.