Hi Adrian,
I've read Martin Fowler chapter, where he mentions that dependencies between packages should not be transitive.Martin puts the definition of transitive effect as having to make a change in Package B and Package C, as a result of change in Package A.
However, as it usually happens, if you make a small change in Package A, you almost certainly have to makes changes to a dependent Package B.This will have an effect on Package C which is dependent on Package B.
In our case, Package B is
shielding changes in Package C due to changes in Package A.However, as I mentioned before, you will still need to make changes in Package B due to its dependency with Package A, which will eventually affect Package C due to its dependency with Package B.
In a way, this is very similar to the definition of transitivity which Martin has mentioned in his book; the difference however being the additional shielding that takes place, which again is only as strong as the dependency between packages.
Ideally, we wouldn't have wanted this "roll-over" or transitive effect to happen!However,looking at the above situation, we can infer that it is impossible to remove the transitive effect completely - we can however take steps to reduce it, by dividing the classes in proper packages and minimizing the dependencies as much as possible.
This is my view on Martin's discussion on on transitive effect and packages.
Comments, please!
Thanks,
Sandeep
SCJP2, OCSD(Oracle JDeveloper), OCED(Oracle Internet Platform) [This message has been edited by Desai Sandeep (edited September 01, 2001).]