𝗟𝗟𝗗 𝗗𝗲𝘀𝗶𝗴𝗻 𝗣𝗿𝗼𝗰𝗲𝘀𝘀 (𝗙𝗿𝗼𝗺 𝗥𝗲𝗾𝘂𝗶𝗿𝗲𝗺𝗲𝗻𝘁𝘀 𝘁𝗼 𝗖𝗼𝗱𝗲) (Note: Since the original uses special Unicode bold characters, I will provide the translated title in standard Markdown bold for better compatibility and readability in Chinese.)

LLD 设计流程(从需求到代码)

低层设计(Low Level Design)并不是立即编写代码。它是一个遵循结构化过程的过程。

遵循以下步骤,从问题陈述转向可运行的代码。

  1. 理解需求 不要直接跳到类。首先,弄清楚系统必须做什么。
  • 需要哪些功能?
  • 必须支持哪些操作?
  • 以后可能会发生哪些变化?
  1. 通过识别名词来寻找类 在需求中寻找名词。名词将成为你的类。 示例:文档编辑器 (Document Editor)
  • 名词:Document, Text, Image, Storage, Editor。
  • 类:Document, TextElement, ImageElement, Storage, DocumentEditor。

示例:停车场 (Parking Lot)

  • 名词:ParkingLot, Floor, Slot, Vehicle, Ticket。
  • 类:ParkingLot, Floor, Slot, Vehicle, Ticket。
  1. 使用 IS-A 关系进行继承 问问自己:“子类是父类的一种吗?”
  • TextElement IS-A DocumentElement。
  • Car IS-A Vehicle。
  • Dog IS-A Animal。 如果答案是肯定的,请使用继承。
  1. 使用 HAS-A 关系进行组合 问问自己:“一个对象是否包含另一个对象?”
  • 一个 Document HAS-A 一组元素。
  • 一个 ParkingLot HAS-A 一组楼层。
  • 一辆 Car HAS-A 一个引擎。 使用组合来连接这些对象。
  1. 通过识别动词来寻找方法 在需求中寻找动作。动词将成为你的方法。
  • “添加文本”变为 addText()
  • “保存文档”变为 save()
  • “停放车辆”变为 parkVehicle()
  1. 使用接口为变化做准备 考虑未来的更新。如果你保存一个文档,你可能会使用文件 (File)、数据库 (Database) 或云端 (Cloud)。
  • 创建一个名为 Persistence 的接口。
  • 创建像 FileStorageDBStorage 这样的实现。 这允许你稍后添加 CloudStorage,而无需更改现有代码。
  1. 绘制 UML 并编写代码 一旦确定了类、继承、组合和方法,就绘制 UML 图。它将作为你的蓝图。最后,将该蓝图转换为整洁的代码。

总结流程:

  • 需求
  • 名词转类
  • IS-A 转继承
  • HAS-A 转组合
  • 动词转方法
  • 变化转接口
  • UML 图
  • 最终代码

Source: https://dev.to/roshan_singh_dd54d52bbaa7/lld-design-process-from-requirements-to-code-594m