feat: Luban.Core初步实现,提供能力:

- RegistService 装饰器实现服务注册
- 下载服务
- 文件服务
- 多线程方法
- 解压缩服务
This commit is contained in:
jackqqq123
2025-09-24 12:07:03 +08:00
parent 6ec2a804ba
commit 369fcbf403
29 changed files with 2024 additions and 11 deletions

View File

@@ -82,9 +82,37 @@ UI层
---
## 五、开发建议
## 五、架构原则
### 1. 服务注册原则
- **优先使用装饰器注册服务**:所有服务类使用 `[RegistService]` 特性标记,实现自动发现和注册
- **避免手工注册**:减少在 DI 容器中手动添加服务,降低耦合度和维护成本
- **支持生命周期配置**通过装饰器参数指定服务生命周期Singleton/Scoped/Transient
### 2. 依赖方向原则
- **LubanHub.Core 不能引用任何其他服务**作为基础能力库Core 必须保持纯净,只能依赖系统库和第三方基础库
- **其他服务可以引用 Core**:业务服务层可以依赖 Core 提供的基础能力
- **业务服务间避免相互引用**:各业务服务应保持独立,通过事件或接口解耦
### 3. 接口设计原则
- **Core 服务必须定义接口**:如 `ICoreFileService``ICoreDownloadService`
- **业务服务建议定义接口**:便于测试和扩展
- **接口与实现分离**:接口放在 Interfaces 目录,实现放在 Services 目录
### 4. 装饰器使用示例
```csharp
[RegistService(ServiceLifetime.Singleton, typeof(ICoreFileService))]
public class CoreFileService : ICoreFileService
{
// 服务实现
}
```
---
## 六、开发建议
- 每个服务建议定义接口(如 IFileService便于测试和扩展
- Core层实现时注意跨平台兼容
- 业务服务只依赖Core不直接操作系统API
- UI层只做展示和交互所有逻辑下沉到服务
- 使用装饰器模式实现服务的自动发现和注册