Acyclic Relationships

For the full description, implementation variations, consequences, and detailed sample, see Page 146 in Java Application Architecture.


Module relationships should be uni-directional.


When you define a relationship between two system modules, their coupling is increased. Some degree of  coupling is necessary simply because modules need to work together to accomplish some task. But certain types of coupling should be avoided. There are rules that will help you identify bi-directional relationships between modules.