Differences

This shows you the differences between two versions of the page.

Link to this comparison view

it:ad:patterns:reference_downwards_only [2019/03/24 12:02] (current)
Line 1: Line 1:
 +# IT:​AD:​Patterns:​Reference Downward Only #
  
 +
 +
 +<callout type="​Navigation"​ class="​small">​
 +* [[../​|(UP)]]
 +{{indexmenu>​.#​2|nsort tsort}}
 +
 +
 +</​callout>​
 +
 +
 +<panel title="​Summary">​
 +
 +Software Circular Dependencies between modules are problematic due to the tight coupling of the mutually dependent modules which renders the separate re-use and testability of a single module impossible.
 +
 +Circular Dependencies may also cause memory leaks by preventing certain very primitive automatic garbage collectors (those that use reference counting) from deallocating unused objects.
 +
 +
 +</​panel>​
 +
 +
 +## Recipe ##
 +
 +After applying the recommendated [[IT/​AD/​Patterns/​Minimal Dependency Cardinality/​]] pattern -- to minimize circular dependencies -- the same guidelines apply to [[IT//​AD/​Development/​Patterns/​DDD/​]] based applications as older architecture patterns: ​
 +
 +    Assembllies must reference Assemblies in the same or lower layers -- never higher layers.
 +
 +
 +## Resources ##
 +
 +* [http://​en.wikipedia.org/​wiki/​Circular_dependency](http://​en.wikipedia.org/​wiki/​Circular_dependency)