我最近对我的观点提出质疑,即单例只适用于日志记录和配置。依赖注入我现在没有看到你无法使用服务或存储库作为单身人士的原因。DDD:服务和存储库实例将DI注入为单例
由于DI通过接口注入单例实例,因此没有耦合。唯一合理的论点是您的服务可能具有共享状态,但如果您仔细考虑,服务应该是独立的单位,没有任何共享状态。是的,他们确实注入了存储库,但是只有一种方法可以创建存储库实例并将其传递给服务。由于存储库不应该有一个共享状态,我不明白为什么它也不能是一个单身。
因此,例如,一个简单的服务类应该是这样的:
public class GraphicService : IGraphicService
{
private IGraphicRepository _rep;
public GraphicService(IGraphicRepository rep)
{
_rep = rep;
}
public void CreateGraphic()
{
...
_rep.SaveGraphic(graphic):
}
}
没有一个国家在服务共享库之外也不会改变或有它自己的状态。
所以现在的问题是,如果您的服务和仓库没有任何国家,只有通过了,通过被实例他们为什么你会不会让他们为单身以同样的方式界面,配置或其他任何?
是你的问题关于单身生活方式,或关于单身设计模式。你的问题并不清楚,但答案真的取决于它。 – Steven
单身人士的优点是什么?好像你在问未来的某个人会不小心加入给你所有问题的状态。 – JefClaes
只要你的版本库没有依赖关系,并且生命周期较短... –