我正在使用.Net Core中的API工作,最近我遇到了业务层使用所有静态方法的情况。这会导致什么样的问题?
答案 0 :(得分:0)
对于通过API呈现服务,您无法静态声明您的方法(特定操作);因为,API上下文或更好地表示必须初始化控制器(按请求)以呈现服务(获取传入请求并将响应写回http上下文)。
但是如果不是这种情况,静态方法声明实际上可以帮助您提高性能,因为它可以静态调用而无需实例化对象。然而,这不是一个好的设计(也不是真的很糟糕)。重要的是,您必须很好地分析场景,以确定您是否真的可以利用功能编程所获得的模块化而不是面向对象的方法。
为了更加专业地为您分解,有一种通常称为Singleton
模式的设计模式,其中一个对象在程序的生命周期中只创建一次,并且一个实例与之共享所有试图访问该类型的实体。那说;它一点都不差,但再一次,你必须很好地分析这个场景。
例如:单例实体框架上下文是一个坏主意,因为上下文可能会被丢弃,您将丢失所有更改,跟踪数据等。另一方面,单例ADO.Net上下文是个好主意如果你遵循每个静态方法的单一责任的概念。