我遇到了一个问题,我认为如果没有一些代码复制就无法解决,但也许我错过了一些东西。
这是我的情景:
TCommonAncestor = class (TSomeClass, ISomeInterface1, ISomeInterface2)
TAncestor1 = class (TCommonAncestor)
TAncestor2 = class (TCommonAncestor)
TMyClass1 = class (TAncestor1)
TMyClass2 = class (TAncestor2)
鉴于我无法在TMyClass1 / 2之前修改任何内容(祖先是Delphi类,更具体地说,我是继承自FireDAC的Query / MemTable / StoredProc ...),我需要实现许多方法和我所有继承类共有的属性。 显然接口不是问题,我可以创建一个新的IMyInterface来声明我所有的新方法和属性,并修改我的类声明:
TMyClass1 = class (TAncestor1, IMyInterface)
TMyClass2 = class (TAncestor2, IMyInterface)
但是我必须在每个派生类上实现每个方法......
有没有办法避免重复这么多代码?