Efferent Couplings

This metric is a measure of the number of types the class being measured 'knows' about. This includes: inheritance, interface implementation, parameter types, variable types, thrown and caught exceptions. In short, all types referred to anywhere within the source of the measured class.

A large efferent coupling can indicate that a class is unfocussed and also may indicate brittleness, since it depends on the stability of all the types to which it is coupled. When used to measure couplings between packages (coming in a later release) this measure can be used together with others to calculate 'abstractness', 'stability' and 'distance from the main line'.

Efferent coupling can be reduced by extracing classes from the original class (i.e. decomposing the class into smaller classes).


This plugin is provided by State Of Flow