如何在c#中获得从低级类属性到某些顶级类属性的引用
本文关键字:属性 引用 | 更新日期: 2023-09-27 18:13:03
如何在c#中获得从低级类属性到某些顶层属性的引用?
是的. .让我们假设有一个类,它的层次结构有10个级别。在某个时刻,我需要从第10层获得对第3层某些属性的引用。然后改变它。让我们想象一下,一些底层属性是一个Timer,它自己做一些事情并需要这种访问。
有可能吗?
谢谢你的提示!
更新:确实,我们可以做一些外部对象来完成这项工作…但是我们的想法是将所有的逻辑都保留在类中
我不确定什么类层次结构需要10个级别(这似乎过于复杂,应该重新评估,参见Gang of Four中的结构模式,如Composite或Decorator,以便您可以减少非常大的继承结构)。
我想了解得墨忒耳定律也是有益的。本质上,您不应该搜索您想要更改的属性或属性,而应该请求它。
简单地创建一个接口,如ISpecificAttributeProvider,在第3层实现,然后在第10层检查当前对象是否实现了该接口。
public interface ISpecificAttributeProvider
{
object GetSpecificAttribute();
}
public class ThirdLevel : SecondLevel, ISpecificAttributeProvider
{
private object _attributeInQuestion;
public object GetSpecificAttribute()
{
return _attributeInQuestion;
}
}
public class TenthLevel: NinthLevel
{
public void Method()
{
if (this is ISpecificAttributeProvider)
object attribute = GetSpecificAttribute();
}
}
希望能有所帮助