a2aproject / a2aproject/a2a-dotnet

Reconsider IA2AClient, ITaskManager, ITaskStore interfaces

未关闭
#133 1 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
C#
星标
262
派生
64
平均合并
5 天 2 小时
30 天内合并 PR
31

描述

### Context:
The A2A SDK declares a few public interfaces: `IA2AClient`, `ITaskManager`, `ITaskStore`, and corresponding classes that implement them. While having the interfaces may be quite convenient for polymorphic (when different implementations are required) and testability (mocking a class for testing purposes) cases, exposing the interfaces as part of the public API surface of SDKs may have downsides, such as a source of breaking changes for all third-party implementations that SDK authors are not aware of when new members are added to them.

### ToDo:
1. Identify all public interfaces in the SDK.
2. For each interface, consider:
- Whether it is actually required, and if not, consider removing it.
- Whether it can be turned into an abstract class. New members can easily be added to abstract classes as virtual without breaking existing implementations, but there could be a downside in case a consumer's class already inherits from another class - C# does not allow multiple inheritance.

贡献指南

打开贡献指南

调研方向

Start by locating the public interfaces in the SDK codebase, likely in a directory like src/A2A. Examine IA2AClient, ITaskManager, ITaskStore and any others. Review their usage in the project and tests to understand if they are required. Consider the trade-offs between interfaces and abstract classes for each, and check for any existing third-party implementations. The outcome is a decision on whether to remove, keep, or convert each interface.

由索引模型根据 Issue 内容生成。

评估

技术栈
csharp
领域
backend-api-design
Issue 类型
重构
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。