C# 状态,剥离所有真正属于它的行为,但可能我缺乏判断的上下文。单例,意味着使用具有单例生存期的DI容器,而不是实际实现单例。或者这是等价物?不是等价物。实现Singleton意味着采用特定的设计模式。具有单例生命周期的对象(如DI容器或容器中具有容器生命周期的

C# 状态,剥离所有真正属于它的行为,但可能我缺乏判断的上下文。单例,意味着使用具有单例生存期的DI容器,而不是实际实现单例。或者这是等价物?不是等价物。实现Singleton意味着采用特定的设计模式。具有单例生命周期的对象(如DI容器或容器中具有容器生命周期的,c#,unit-testing,design-patterns,tdd,facade,C#,Unit Testing,Design Patterns,Tdd,Facade,状态,剥离所有真正属于它的行为,但可能我缺乏判断的上下文。单例,意味着使用具有单例生存期的DI容器,而不是实际实现单例。或者这是等价物?不是等价物。实现Singleton意味着采用特定的设计模式。具有单例生命周期的对象(如DI容器或容器中具有容器生命周期的对象)也是单例,但没有实际单例实现的缺点。这个答案很好地描述了这一点。 public class RecurringProfileFacade { public void MarkAsCancelled(IRecurringProfil


状态,剥离所有真正属于它的行为,但可能我缺乏判断的上下文。单例,意味着使用具有单例生存期的DI容器,而不是实际实现单例。或者这是等价物?不是等价物。实现
Singleton
意味着采用特定的设计模式。具有单例生命周期的对象(如DI容器或容器中具有容器生命周期的对象)也是单例,但没有实际单例实现的缺点。这个答案很好地描述了这一点。
public class RecurringProfileFacade
{
    public void MarkAsCancelled(IRecurringProfile profile)
    {
        MarkAsCancelledService service = new MarkAsCancelledService();
        service.MarkAsCancelled(profile);
    }
    public void RenewProfile(IRecurringProfile profile)
    {
        RenewProfileService service = new RenewProfileService();
        service.Renew(profile);
    }
    ...
}