mirror of
https://github.com/jackqqq123/luban_ui_internal.git
synced 2025-11-15 13:48:24 +08:00
feat: Luban.Core初步实现,提供能力:
- RegistService 装饰器实现服务注册 - 下载服务 - 文件服务 - 多线程方法 - 解压缩服务
This commit is contained in:
@@ -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层只做展示和交互,所有逻辑下沉到服务
|
||||
- 使用装饰器模式实现服务的自动发现和注册
|
||||
|
||||
Reference in New Issue
Block a user