interface's IID after it's publish is plain wrong. Anyway, this
question. If one stays away from Automation, lots of issues
never arise.
A2 : A1 is an approach that could be taken to extend interface. It is a
bit more complex then that (look up interface/library versions rules),
however
imagine that in release 1.0.0.0 you introduce interface A1, so you clients
know exactly how to bind/call it. Than in release 1.0.0.1 you decide you
need to add a function, one way to do it is to derive A2 from A1, so you
old client can still use A1 that they know about and your new clients can
use A2.
There is a lot of trickery associated with interface extensions in COM,
like substitution of interface UUID (A2 takes uuidof(A1) and A1 takes new
UUID) in subsequent releases to accommodate easy recompilation or playing
with fire and installing 2 libraries with different versions(at one time
Microsoft actually recommended that believe it or not) etc.
"anand" <anand.chugh@gmail.com> wrote in message
news:1176827144.235454.322150@l77g2000hsb.googlegroups.com...
On Apr 17, 7:57 pm, "catharticmomentuse...@yahoo.co.uk"
<catharticmomentuse...@yahoo.co.uk> wrote:
It depends a lot on the problem you are trying to solve.
What are the interfaces trying to achieve? If there an "Is-a"
relationship then inheritance maybe a good solution.
Would it be reasonable to have a client that implemented the methods
of A2 without implementing A? If so then you shouldn't use inheritance
(since any implementation of A2 would be forced to include all the
methods from A).
Yeah that depends on lots of stuff, but what would be good design
approach to make components extensible for future??