Inheritance C#,存储/访问共享成员

Inheritance C#,存储/访问共享成员,inheritance,Inheritance,我想从基类(最好是抽象的,因为不需要创建基类)派生出许多类似的子类(单例)。这些子类彼此交互,最重要的是,我希望它们共享对特定数据池(不是很多)的引用 这听起来像是一个常见的场景,但我不确定什么是最好的设计?也许我的脑子有点乱 我认为没有必要将公共/共享成员从类结构中分离出来,但我不确定如何最好地存储/访问它。我想尽量避免传递它,尽管在功能上它可能是有意义的 如果您有任何建议,我将不胜感激。我将避免使用建议的静态。我发现在大多数情况下这是一种不好的做法() 另一种方法是创建一个数据池类(和IDa

我想从基类(最好是抽象的,因为不需要创建基类)派生出许多类似的子类(单例)。这些子类彼此交互,最重要的是,我希望它们共享对特定数据池(不是很多)的引用

这听起来像是一个常见的场景,但我不确定什么是最好的设计?也许我的脑子有点乱

我认为没有必要将公共/共享成员从类结构中分离出来,但我不确定如何最好地存储/访问它。我想尽量避免传递它,尽管在功能上它可能是有意义的


如果您有任何建议,我将不胜感激。

我将避免使用建议的静态。我发现在大多数情况下这是一种不好的做法()

另一种方法是创建一个数据池类(和IDataPool接口),并将一个实例(只有一个实例)注入到单例中(单例类接受IDataPool参数)

然后,这个数据池类将提供与池数据交互所需的所有方法,并保存数据本身。事实上,它抽象了数据的访问方式,因此很容易在单例类中重用

您可以使用IoC容器来决定生命周期,或者使用新操作符在其他地方创建实例


这样,模拟或替换数据池(例如在测试中)也很容易。

抽象类
中的
静态
成员应该可以工作,不?哈,大脑放屁,是的。但如下文所述,其使用可能并不可取。谢谢感谢您的建议和布局结构!我明白在编程和生活中,节制是关键;-)