停车场系统:低层设计

2025-06-10

停车场系统:低层设计

这是我们“底层设计”系列的第一篇博文。我们将从设计和编写一个停车场系统开始。在编写代码时,我们将遵循之前博文(第一部分和第二部分)中讨论过的一些设计模式。

在开始设计之前,必须了解系统的需求和目标。

系统设计模因

要求:-

  • 我们有一个入口和一个出口
  • 我们为两轮车、三轮车和四轮车提供不同的停车位
  • 停车费按小时和分钟计算
  • 有多个停车楼层
  • 我们有不同的策略来寻找停车位,例如靠近电梯的停车位、靠近入口的停车位等

所需物品:-

  • 入口
  • 停车位
  • 车辆,车辆类型(枚举)

现在,让我们设计一下😎

但是但是但是,在进行设计之前,有一件最重要的事情,即遵循以下任一方法

  • 自上而下的方法
  • 自下而上的方法

在自上而下的方法中,我们从系统开始。在我们的例子中,系统从车辆进入停车位开始。
在自下而上的方法中,我们从主要需求(任何需求)开始,例如从 ParkingSpot 开始,然后再进一步。

思维过程:-

现在,这是我们在设计时的思考过程。

  • 车辆需要停放在某个位置(设计停车位)
  • 但是我们有不同类型的车辆(2、3、4 轮车),因此将 ParkingSpot 作为接口并扩展到 TwoWheeler、ThreeWheeler 和 FourWheeler ParkingSpot。

停车场系统设计

  • 现在,我们有了 ParkingSpots,但为了管理这些 ParkingSpots,我们必须创建一个管理器(ParkingSpotManager),它将成为控制 ParkingSpots 的集中位置。
  • 这里,我们有一个具有不同实现的停车策略(策略模式)。
  • 我们有 has-a 关系,表示它不是孩子,但它有该类的一个实例

停车场系统经理

  • 现在,说到入口和停车票,我们有一个入口,人们从那里领取停车票。所以,它应该有一个停车票,一个停车位管理器,用于查找停车位等等。

停车场系统

  • 现在,我们必须在门票上包含价格,并且可以从入口处分配价格。现在,价格可以不同,并且可以有多种实现。

停车场系统

  • 现在,它可能看起来很乱,但最后把所有的东西结合起来,它看起来像这样(抱歉,如果图像不清晰,请点击Google Drive链接获取高质量图像)

停车场系统


我们将在下一篇博客中介绍代码,请关注以获取更多更新

鏂囩珷鏉ユ簮锛�https://dev.to/ssd/parking-lot-system-low-level-design-30gi
PREV
构建应用程序时一次性使用 ReactJS、MongoDB、JS、CSS
NEXT
代理设计模式