使用依赖于自身内部另一个类的类

本文关键字:另一个 内部 依赖于 | 更新日期: 2023-09-27 17:57:10

我想知道是否有正确的方法可以做到这一点:我有一个对象,里面有一些重要的信息(公共变量)。然后我有一个类,它使用重要信息执行操作,代码如下所示:

 public class Object
{
    public class DependantClass1;
    public class DependantClass2;
    public object ImportantVariable;
    public object ImportantVariable2;
    public object ImportantVariable3;
    public object ImportantVariable4;
    public Object()
    {
        DependantClass1 = new DependantClass1(this);
        DependantClass2 = new DependantClass1(this);
    }
}

问题是,这个"依赖类"与许多或所有"重要变量"一起工作,所以我认为将它们全部作为参数传递是不值得的(在实际代码中会有更多的变量)。

发生这种情况是因为我不想在"main"类中拥有所有与变量一起使用的代码,为了模块化和更新代码时的易用性。

我想不出其他方法,但对我来说看起来不对。

编辑:"依赖类"相互交互,这是我认为的主要问题。

使用依赖于自身内部另一个类的类

我建议创建一个包含所有ImportantVariable的接口,让你的Object类实现它,然后让DependentClass在其构造函数中采用该接口。或者(在我看来更可取)将所有ImportantVariable抽象到一个VariableCollection类中(当然你可以在真正的应用程序中想出一个更好的名字!)并使DependentClass es接受该类。

方法一(接口)

public interface IImportantVariables
{
  object ImportantVariable { get; } // I prefer exposing this 
                                    // kind of thing as a readonly 
                                    // property but it's up to you
  object ImportantVariable2 { get; }
  object ImportantVariable3 { get; }
  object ImportantVariable4 { get; }
}
public class Object : IImportantVariables
{
  // Implementation as before
}
public class DependentClass1 
{
  public DependentClass1(IImportantVariables variables)
  {
    // ...
  }
}

方法 2(抽象类)

public class ImportantVariables
{
  public object ImportantVariable;
  public object ImportantVariable2;
  public object ImportantVariable3;
  public object ImportantVariable4;
}
public class Object
{
  public class DependantClass1;
  public class DependantClass2;
  public ImportantVariables Variables;
  public Object()
  {
    Variables = new ImportantVariables();
    DependantClass1 = new DependantClass1(this.Variables);
    DependantClass2 = new DependantClass1(this.Variables);
  }
}