On Tue, 2005-02-01 at 16:20 +0100, Emmanuel Bourg wrote: > Reid Pinchback wrote: > > > I strongly agree. Cyclic package dependencies seem > > unimportant when you only have a few classes, but as the > > amount of code grows, you quickly find that testing and > > refactoring because much more difficult than it had to be. > > Can you give an example of a difficult refactoring due to a cyclic > dependency between 2 packages ? I'm not sure to understand the practical > issue.
Well, I don't know about the refactoring issues. But I prefer avoiding cyclic dependencies because: * You can learn the classes in packages in order, without bouncing back and forth between packages * javac, javadoc, UML diagramming tools, etc. can process code in directory order without having to bounce back and forth. This just has to improve performance and reliability. * you can trim down a distribution by progressively leaving out packages * when porting code or revising code (including refactoring) you can do this in a progressive manner, starting with the package at the root of the dependency tree and working forward rather than having to migrate classes scattered across a selection of packages. * having clean package dependencies encourages lower code coupling. Quite often I find it prompts me to create clean interfaces to break inter-package dependencies, and I then find those interfaces are sensible for many reasons. Regards, Simon --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]