gpt4 book ai didi

c# - 在 Web 应用程序中访问业务逻辑服务是否有最佳实践?

转载 作者:太空狗 更新时间:2023-10-30 00:22:38 24 4
gpt4 key购买 nike

在 Web 应用程序中实例化/调用业务逻辑层服务是否有最佳实践?我有大量服务,我不断实例化这些服务,然后仅针对一个方法调用进行处理。

这些应该作为提供者实现吗?或者可以从单例访问?

示例代码:

void ShipProduct(){
ProductService service = new ProductService();
service.Ship(aProduct);
}

显然它比这要复杂得多,我只是不知道我在各处创建这些服务的新实例是否做错了什么。

最佳答案

我会提防单例。它经常在并不总是需要它的地方被滥用。如果一次只能有该类的一个实例,则只应使用单例。在此示例中,仅当您希望一次执行一个 Ship() 操作时才使用单例。

我经常使用的一种模式是为类中的服务创建一个私有(private)只读字段,它可能如下所示:

public ShippingController
{
private readonly ProductService productService;

public ShippingController(ProductService service)
{
productService = service;
}

void ShipProduct(Product aProduct)
{
service.Ship(aProduct);
}
}

至少这样,您不受任何决定的约束,您可以创建一个在整个应用程序中使用的全局 ProductService,或者您可以创建一个新实例并将其传入,这样您可以获得最好的两个世界。

至于哪种方式更好,就看你的情况了。仔细考虑使用您的服务的确切要求是什么,并相应地实现。

关于c# - 在 Web 应用程序中访问业务逻辑服务是否有最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/376570/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com