我是策略设计模式的新手,我试图了解如何创建通用策略设计模式和注册依赖注入。我正在使用 C# 和 .Net 6.0
示例: 策略界面
public interface IStrategy<TSource, TResult> where TSource : CustomRequest
{
public TResult Calculate(TSource request)
}
来自高水平的具体课程
public class A : IStrategy<ClassX, ClassY>
{
... //implementation
}
public class B : IStrategy<ClassZ, ClassT>
{
... //implementation
}
从这里开始,我陷入困境,需要一些关于如何将其全部缝合的指导。
我假设我需要一个 Context 类,它将根据传入的内容来选择策略的正确具体实现
<TSource, TResult>
?请您帮我提供一个上下文类的示例+注册到依赖注入+如何在调用类中调用上下文。谢谢你:)
Services.AddSingleton<A, IStrategy<TypeA, TypeB>>();
Services.AddSingleton<B, IStrategy<TypeC, TypeD>>();