The generated SDO creates a set of interfaces
and set of implementations. If we need to change implementations in the
future wouldn’t we just keep existing generated interfaces and wrap the new
implementation code to work with these interfaces. I think I would wait to
write the code to fit in a new implementation when we have a new implementation.
If you think the generated interfaces are not correct or not general enough
lets fix it in the SDO/EMF code.
Glenn Everitt
From: corona-dev-bounces@xxxxxxxxxxx
[mailto:corona-dev-bounces@xxxxxxxxxxx]
On Behalf Of Marcin Okraszewski
Sent: Monday, July 17, 2006 5:37
AM
To: Corona
development
Subject: [corona-dev] Should we
provide separation layer between generated SDO and our code?
I would like to get your
opinions on separation of SDO generated models from our code.
Currently on the client side we need to work with project container. There are
SDO interfaces generated from XML Schema, which can be used for now, but adding
and additional layer makes us more independent. So it would look like this:
module1
|
module2
|
module3
|
...
|
Our
separation interfaces
|
SDO
generated interfaces
|
Advantages:
- if we change SDO to any other model (eg. XMLBeans
or whatever), we do not have to change code in moduleX
- we can provide some convenient methods in our
interface (eg. getRepositoryByKind() )
- if the model is changed (eg. repositories goes
out from container definition) we can still handle it without changes in moduleX
Disadvantages:
- additional effort to make adapters (not a big
effort)
- possibility that SDO generated models get out of
sync with our separation interfaces
- people may fill confused with two kinds of
interfaces for the same thing
- an additional layer is always some overhead
Personally I'm for adding the additional layer. What
is your opinion about it?
Marcin
The contents of this e-mail are intended for the named addressee only. It
contains information that may be confidential. Unless you are the named
addressee or an authorized designee, you may not copy or use it, or disclose it
to anyone else. If you received it in error please notify us immediately and then
destroy it.
The contents of this e-mail are intended for the named addressee only. It contains information that may be confidential. Unless you are the named addressee or an authorized designee, you may not copy or use it, or disclose it to anyone else. If you received it in error please notify us immediately and then destroy it.