使用单独的类,全局/静态类?

bar*_*ron 4 c# class-design class visual-studio-2008

说我有两个单独的类,A和B.

我还有Repository类C,它从文本文件中加载一些信息.例如,它有一些方法loadLines(),addLine(),deleteLine().

忽略数据绑定,如何使A和B都在同一个C类上工作.是否可能?

例如,目前,在A类和B类表格中,我有:

var classC = new C();
Run Code Online (Sandbox Code Playgroud)

这导致重复执行.如果我可以从A或B中使用一个c类副本,那会好得多.

编辑:所以使用单例,C类的构造函数何时执行? - 无论哪个班级首先创造它?它只发生在我接受它的时候?

edit1:使用单例模式意味着你应该只在项目解决方案中有一个吗?我可以有多个吗?

Jos*_*osh 6

您可以使用Singleton模式,或者如果您想要使用依赖注入框架的路径(这不仅仅是创建单例,而且非常值得研究),大多数DI容器只能创建一个对象的单个实例.

class C {

    public static readonly C Instance = new C();

    private C() {
    }

}
Run Code Online (Sandbox Code Playgroud)

那你就像使用它一样:

private void A_Load(object sender, EventArgs e) {
    var classC = C.Instance;
}

private void B_Load(object sender, EventArgs e) {
    var classC = C.Instance;
}
Run Code Online (Sandbox Code Playgroud)