Hey everyone! We are developing our products upon UNO component model. One of the big problem we have met is how to implement a service which declared by the NEW STYLE statement. For example:
XA------------------------------------- | | | | XB XC | | | A B C This illustration shows our service inheritance relationship where XA, XB, XC represent interfaces and A, B, C represent services. When we try to implement these services, we got a problem: XA------------------------------------- | | | | XB XC | | | ImplA---------ImplB | | | -------------------------------------ImplC This illustration above describe our implemention inheritance relationship where ImplA, ImplB, ImplC correspondingly represents the implementation of service A, B, C. We make ImplB derived from XB to inherit the intereface, and derived from ImplA to inherit the implementation of the interface XA. Now the problem comes, this is a terrible multiple inheritance relationship in C++, and maks hardly reuse of ImplA. because of ImplA and XB both derived from XA, leading that we must implement all methods declared in XA within ImplB again.The same problem occurs in ImplC. If there are many methods in XA, the development and the maintenance complexity of the ImplB and ImplC would be unacceptable. I think it is big problem caused by single interface service(the NEW STYLE service). where only one interface can be inherited by serivce. If we use the OLD STYLE service declaration, the service relationship would be like this: XA-------- XB XC | | | | | | | ---------B | | |-----------------------------------C | A And the imlementation illustration would be: XA XB XC | | | ImplA | | | | | ------------------ImplB | |-------------------------------------ImplC There is no circle in this graph, so the reuse could be easily done. So I just wonder whether we really need the single interface service. Best Wishes, Rainman. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]