发布于 2026-01-06 8 阅读
0

停车场系统:低级设计 DEV 的全球展示挑战赛,由 Mux 呈现:展示你的项目!

停车场系统:低层设计

由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

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

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

系统设计梗

要求:-

  • 我们只有一个入口和一个出口
  • 我们设有不同的停车位,分别供两轮车、三轮车和四轮车使用。
  • 停车价格按小时和分钟计算。
  • 有多层停车场
  • 我们有不同的寻找停车位的策略,例如靠近电梯的停车位、靠近入口的停车位等等。

所需物品:-

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

现在,让我们开始设计吧😎

但是,但是,但是,在讨论设计之前,有一件最重要的事情,那就是遵循以下两种方法之一:

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

在自顶向下的方法中,我们从系统初始状态开始。在本例中,我们的系统从车辆驶入停车位开始。
在自底向上的方法中,我们从主要需求(任意)开始,例如从“停车位”开始,然后逐步展开。

思考过程:

现在,让我们来看一下我们在设计时的思路。

  • 车辆需要停放在某个地点(设计一个停车位)
  • 但是我们有不同类型的车辆(2轮、3轮、4轮),所以将停车点作为接口,并扩展到两轮车、三轮车和四轮车停车点。

停车场系统设计

  • 现在我们有了停车位,但是要管理这些停车位,我们需要创建一个管理器(停车位管理器),它将是一个集中控制停车位的地方。
  • 这里,我们有一个停车策略(策略模式),它有不同的实现方式。
  • 我们有一个 has 关系,它表明它不是子类,但它拥有该类的一个实例。

停车场系统管理器

  • 现在来说说入口和取票系统。入口处是车辆进入并领取停车票的地方。因此,这里应该有取票系统、停车位管理系统(用于查找停车位)等等。

停车场系统

  • 现在,我们需要在门票上标明价格,价格可以在入口处设置。价格可以不同,也可以有多种实现方式。

停车场系统

  • 现在,它看起来可能很乱,但最终把所有东西组合起来后,效果是这样的(抱歉,如果图片不清晰,请点击Google 云端硬盘链接查看高清图片)。

停车场系统


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

文章来源:https://dev.to/singhdevhub/parking-lot-system-low-level-design-30gi