𝗟𝗟𝗗 𝗗𝗲𝘀𝗶𝗴𝗻 𝗣𝗿𝗼𝗰𝗲𝘀𝘀 (𝗙𝗿𝗼𝗺 𝗥𝗲𝗾𝘂𝗶𝗿𝗲𝗺𝗲𝗻𝘁𝘀 𝘁𝗼 𝗖𝗼𝗱𝗲) (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)并不是立即编写代码。它是一个遵循结构化过程的过程。
遵循以下步骤,从问题陈述转向可运行的代码。
- 理解需求 不要直接跳到类。首先,弄清楚系统必须做什么。
- 需要哪些功能?
- 必须支持哪些操作?
- 以后可能会发生哪些变化?
- 通过识别名词来寻找类 在需求中寻找名词。名词将成为你的类。 示例:文档编辑器 (Document Editor)
- 名词:Document, Text, Image, Storage, Editor。
- 类:Document, TextElement, ImageElement, Storage, DocumentEditor。
示例:停车场 (Parking Lot)
- 名词:ParkingLot, Floor, Slot, Vehicle, Ticket。
- 类:ParkingLot, Floor, Slot, Vehicle, Ticket。
- 使用 IS-A 关系进行继承 问问自己:“子类是父类的一种吗?”
- TextElement IS-A DocumentElement。
- Car IS-A Vehicle。
- Dog IS-A Animal。 如果答案是肯定的,请使用继承。
- 使用 HAS-A 关系进行组合 问问自己:“一个对象是否包含另一个对象?”
- 一个 Document HAS-A 一组元素。
- 一个 ParkingLot HAS-A 一组楼层。
- 一辆 Car HAS-A 一个引擎。 使用组合来连接这些对象。
- 通过识别动词来寻找方法 在需求中寻找动作。动词将成为你的方法。
- “添加文本”变为
addText()。 - “保存文档”变为
save()。 - “停放车辆”变为
parkVehicle()。
- 使用接口为变化做准备 考虑未来的更新。如果你保存一个文档,你可能会使用文件 (File)、数据库 (Database) 或云端 (Cloud)。
- 创建一个名为
Persistence的接口。 - 创建像
FileStorage或DBStorage这样的实现。 这允许你稍后添加CloudStorage,而无需更改现有代码。
- 绘制 UML 并编写代码 一旦确定了类、继承、组合和方法,就绘制 UML 图。它将作为你的蓝图。最后,将该蓝图转换为整洁的代码。
总结流程:
- 需求
- 名词转类
- IS-A 转继承
- HAS-A 转组合
- 动词转方法
- 变化转接口
- UML 图
- 最终代码
Source: https://dev.to/roshan_singh_dd54d52bbaa7/lld-design-process-from-requirements-to-code-594m