-
Notifications
You must be signed in to change notification settings - Fork 2k
Expand file tree
/
Copy pathCEfferentCoupling.qhelp
More file actions
46 lines (38 loc) · 1.17 KB
/
CEfferentCoupling.qhelp
File metadata and controls
46 lines (38 loc) · 1.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<!DOCTYPE qhelp PUBLIC
"-//Semmle//qhelp//EN"
"qhelp.dtd">
<qhelp>
<overview>
<p>
This metric measures the number of outgoing dependencies for each class,
i.e. the number of other classes on which each class depends.
</p>
<p>
Classes that depend on many other classes are quite brittle, because if any of
their dependencies change then they may have to as well. Furthermore, the
reason for the high number of dependencies is often that different bits of
the class depend on different sets of other classes, so it is not uncommon to
find that classes with high efferent coupling also lack cohesion.
</p>
</overview>
<recommendation>
<p>
Efferent coupling can be reduced by splitting a class into pieces along its
dependency fault lines.
</p>
</recommendation>
<references>
<li>
R. Martin. <em>Agile Software Development: Principles, Patterns and Practices</em>. Pearson, 2011.
</li>
<li>
M. Fowler. <em>Refactoring</em>. Addison-Wesley, 1999.
</li>
<li>
<a href="https://en.wikipedia.org/wiki/Code_refactoring">Wikipedia: Code refactoring</a>
</li>
<li>
<a href="http://www.jot.fm/issues/issue_2005_01/column1/">Refactoring as Meta Programming?</a>
</li>
</references>
</qhelp>