diff --git a/.trae/documents/sdk-initialization-patterns.md b/.trae/documents/sdk-initialization-patterns.md index 8a4e489..d39d716 100644 --- a/.trae/documents/sdk-initialization-patterns.md +++ b/.trae/documents/sdk-initialization-patterns.md @@ -10,12 +10,15 @@ 1. **优先使用构造函数参数**:如果语言支持(如 Python, Kotlin, Swift),优先使用带默认值的命名参数。 2. **利用语言特性**: - - **重载 (Overloading)**:适用于 Java, C++, C#。 - - **配置对象 (Options Object)**:适用于 TS, JS, Lua。 - - **Builder / Functional Options**:适用于 Go, Rust。 + + * **重载 (Overloading)**:适用于 Java, C++, C#。 + + * **配置对象 (Options Object)**:适用于 TS, JS, Lua。 + + * **Builder / Functional Options**:适用于 Go, Rust。 3. **保持协议底层一致**:无论上层 API 如何设计,底层生成的 `create` 指令 JSON 必须包含 `array` (或对应数据字段) 参数。 ---- +*** ## 各语言实现参考 @@ -217,8 +220,8 @@ Point pts[] = {{1,2}, {3,4}}; tracer_t* t = tracer_create_array_custom("Points", pts, 2, sizeof(Point), point_serializer); ``` ---- +*** ## 总结 -通过统一采用**“构造即初始化”**的设计模式,我们能够在几乎所有主流编程语言中提供一致、简洁且符合语言习惯(Idiomatic)的 SDK 使用体验。这不仅降低了用户的学习成本,也使得代码更加紧凑和易读。 +通过统一采用\*\*“构造即初始化”\*\*的设计模式,我们能够在几乎所有主流编程语言中提供一致、简洁且符合语言习惯(Idiomatic)的 SDK 使用体验。这不仅降低了用户的学习成本,也使得代码更加紧凑和易读。