When I was designing a composition SDK, I encountered a problem caused by Single-re-inheritance. Take a look at the class diagram first.
The combination of interfaces is similar to that of Microsoft cab. The problem is: 1 in the figure, Class A that inherits Class B needs to inherit the function of class C, but the single-re-inheritance cannot make a inherit Class C. How can this problem be solved? 2. How can I flexibly implement inheritance extension for smartpart, pulledsmartpart, pushedsmartpart, mastersmartpart, pulledmastersmartpart, and pushedmastersmartpart?
Currently, I am using a combination of methods to implement a group of features at the interface level, and to complete a group of functions based on the class that must be inherited, and combine the two sets of functions.
However, for every class that needs to inherit the system class, if it implements the ismartpart/iworkspace interface, it must be re-implemented using composor. At the moment, I cannot find a better solution.