C#在派生类中扩展嵌套类的功能

时间:2018-08-09 08:02:45

标签: c# unity3d

我知道之前也曾问过类似的问题,但我的情况要具体些,我希望这实际上不会重复。

我正在研究Unity项目,最后得到的类层次结构大致如下:

public class A : MonoBehaviour {

    protected abstract class Nested {

        public abstract void Foo();
    }

    protected abstract class Nested1 : Nested { /*...*/ }
    protected abstract class Nested2 : Nested { /*...*/ }
    protected abstract class Nested3 : Nested { /*...*/ }
}

public class B : A {

    protected class SubNested1 : Nested1 { /*...*/ }
    // ...
}

每个编号的A.Nested提供了A的一部分实现。出于上下文考虑,我应该补充一点,A还包含一个“管理器”对象,该对象接受Nested个对象,并且它充当某种代理,这意味着A将运行管理器,依次运行当前的Nested。当前的Nested可以选择通过询问管理者来暂停执行(如果其他人赞成)。

无论如何,这3个A.Nested仅知道如何相互通信,因此它们为子类公开了一些(除Nested.Foo之外)抽象方法,以覆盖子类以实现正确的行为。问题是,在向经理提供信息时,我真的不知道如何将实际类型为A的{​​{1}}实例正确设置为B,而对于B.SubNested则应保持私有


我只是想知道你是否:

  1. 会判断总体设计是好是坏(例如,如果我应该考虑 重新设计A的工作方式),和
  2. 建议或反对以下修改:

A

当然,如果您有任何其他建议,将不胜感激。非常感谢。

0 个答案:

没有答案