Sha256: 865d710e020181cf8c90b1758e4593c5efec333269fb975758f336efc62fb913
Contents?: true
Size: 1.16 KB
Versions: 4
Compression:
Stored size: 1.16 KB
Contents
# Control Couple ## Introduction Control coupling occurs when a method or block checks the value of a parameter in order to decide which execution path to take. The offending parameter is often called a _Control Couple_. Control Coupling is a kind of duplication, because the calling method already knows which path should be taken. Control Coupling reduces the code's flexibility by creating a dependency between the caller and callee: any change to the possible values of the controlling parameter must be reflected on both sides of the call. A _Control Couple_ also reveals a loss of simplicity: the called method probably has more than one responsibility, because it includes at least two different code paths. You can find a good write-up regarding this problem [here](https://solnic.codes/2012/04/11/get-rid-of-that-code-smell-control-couple/). ## Current Support in Reek Reek performs the following checks that fall in this category: * [Control-Parameter](Control-Parameter.md) - a method parameter or block parameter is the tested value in a conditional statement * [Boolean-Parameter](Boolean-Parameter.md) - a method parameter is defaulted to `true` or `false`.
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
reek-6.0.3 | docs/Control-Couple.md |
reek-6.0.2 | docs/Control-Couple.md |
reek-6.0.1 | docs/Control-Couple.md |
reek-6.0.0 | docs/Control-Couple.md |