使用依赖于自身内部另一个类的类
本文关键字:另一个 内部 依赖于 | 更新日期: 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);
}
}