我有一个包含数据库逻辑的静态类。
此类用于网站,Web服务以及中间件组件的一部分。
对于此类中的每个方法,我都需要来自调用者的一段上下文信息。在网站的情况下,这将是用户信息,对于Web服务和中间件组件,这将标识呼叫服务。
我无法在配置中存储此值,因为每个用户可能会有所不同,并且我并不总是有一个httpcontext来获取此值。
我可以轻松地在这个类中的每个方法上添加一个新参数,或者我可以从静态类中更改它,以便它具有单个非静态属性,但这些解决方案似乎都不是很优雅。
那么我还没有考虑过任何其他选择吗?
答案 0 :(得分:6)
如果所有方法都需要一些状态,那听起来很像你应该创建一个实例并通过构造函数传递该状态。
将设计从一堆静态方法更改为实例也可以更轻松地测试类。
答案 1 :(得分:1)
我会添加参数。它对我来说似乎并不优雅 - 你需要上下文信息,而在静态类中获取它的唯一方法就是传入它。