我有以下类结构(Blah === ExtBlah):
Base
+--[ ExtBase ] --???-- [ ExtBlah ] --- .. more scripts ...
+--[ Blah ]
+---[ Script1 ]
+---[ Script2 ]
+---[ ....... ]
+---[ ScriptN ]
现在,我需要编写更多的脚本,这些脚本需要扩展Blah,但是对于新的脚本案例,Blah必须扩展“ ExtBase”,而不是“ Base”。
我仍然必须使用Blah,因为Scripts1-N必须依赖于“ Base”,而不是“ ExtBase”。
我也不想创建Blah的副本,即ExtBlah,因为这意味着代码的重复,并且将更难以支持。
有任何想法吗 ?
最佳答案
正如Jean-Baptiste在其评论中所述,如果您不想复制Blah的代码,请将其封装到ExtBlah中并调用Blah的方法。记住要添加一个公共接口。实际上,接口试图解决一些多重继承问题。
Base
+--[ ExtBase ]
+--[ Blah ] implements BlahInterface
+---[ Script1 ]
+---[ Script2 ]
+---[ ....... ]
+---[ ScriptN ]
+--[ ExtBlah: - private Blah instance] implements BlahInterface
+---[ ScriptK ]