在不同对象之间共享对象

时间:2012-02-03 17:36:03

标签: c# sharing

我遇到的情况是我有一个公共引用对象,它作为参数传递给不同的操作对象。传递它会使代码变得非常混乱。 无论如何,它是否像对每个操作(如会话)的引用?但是,它只是一个核心代码库。使用静态类不是解决方案。

由于

3 个答案:

答案 0 :(得分:1)

解决方案1 ​​ - 您可以使用单身人士。它们保证运行代码中只有一个类的实例。

解决方案2 - 为什么不将共享引用对象作为具有这些操作的对象的属性?这样,每个操作都可以访问它。你可以做一些奇特的东西,比如如果引用属性为null,抛出一个异常左右。

答案 1 :(得分:1)

我知道有两种一般方法:

a)使用IoC和构造函数依赖项传入共享对象。正如你所提到的,如果在很多地方使用这个对象,这会污染接口,并且在很多情况下会增加很多混乱。

b)使用ambient context:创建一个基于接口的单例,可以由需要该对象实例的类访问。在单例中有一个setter,允许你覆盖实例(例如用于单元测试),所以仍然可以测试代码。

答案 2 :(得分:0)