Skip to content

快速开始

前置条件

从 NuGet 安装(预览)

元包在 nuget.org 上的 ID 为 Skymly.DesignPatterns。C# 命名空间仍为 DesignPatterns.*

xml
<PackageReference Include="Skymly.DesignPatterns" Version="0.1.0-preview3" />

早期预览

公共 API、生成代码与 DP### 诊断尚未稳定。在稳定公告前请固定包版本或 Git commit。

可选 DI: 元包不包含 DesignPatterns.Extensions.DependencyInjection — 在独立 DI 包发布前请从主仓 sibling 引用。见 依赖注入

克隆布局(贡献者)

建议并列放置于 DesignPatterns 项目目录下:

<workspace-root>/
  Skymly/
    DesignPatterns/
      DesignPatterns/
      DesignPatterns.Samples/
      DesignPatterns.Docs/    ← 本站
powershell
git clone https://github.com/Skymly/DesignPatterns.git
git clone https://github.com/Skymly/DesignPatterns.Samples.git

构建生成器解决方案

powershell
cd DesignPatterns
./build.ps1 --target Ci --configuration Release

第一个模式:Strategy

引用 Skymly.DesignPatterns(NuGet)或本地 pack / 项目引用。在实现类与 partial 注册表持有者上标记特性:

csharp
[RegisterStrategy(typeof(IPaymentStrategy), "alipay")]
public sealed class AlipayPayment : IPaymentStrategy { ... }

public static partial class PaymentStrategyRegistry { }

使用生成的注册表:

csharp
var alipay = PaymentStrategyRegistry.Instance.Get(PaymentStrategyKeys.Alipay);

详见 Strategy 与示例仓库。

本地预览文档

bash
cd DesignPatterns.Docs
npm install
npm run docs:dev

基于 MIT 许可证发布。