【发布时间】:2021-09-15 05:44:45
【问题描述】:
我有以下鸡/蛋继承问题:
这里是我可以派生的基类,但它们位于框架上,因此我无法修改它们:
class Editor
{
}
class ScriptedImporterEditor : Editor
{
}
这里是我项目中的类:
一个带预览的编辑器,按预期工作,Cylinder 和Torus 有DrawPreview:
class EditorWithPreview : Editor
{
public void DrawPreview(){}
}
class Cylinder : EditorWithPreview
{
// DrawPreview is available
}
class Torus : EditorWithPreview
{
// DrawPreview is available
}
但现在我需要一个可以预览的脚本导入器编辑器:
class ScriptedImporterEditorWithPreview : ScriptedImporterEditor
{
// cannot inherit EditorWithPreview as it's not a ScriptedImporterEditor
}
class Cube : ScriptedImporterEditorWithPreview
{
// unable to use DrawPreview
}
class Sphere : ScriptedImporterEditorWithPreview
{
// unable to use DrawPreview
}
基本上,
-
Editor和ScriptedImporterEditor我都无法更改,因为我不拥有它们 - 因此我无法将
EditorWithPreview的逻辑导入ScriptedImporterEditor -
Cube和Sphere不能继承和使用DrawPreview
【问题讨论】:
标签: c# inheritance design-patterns