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]

Reply via email to