Description
The Swiss Army Knife refers to a tool fulfilling a wide range of needs. The Swiss Army Knife
design defect is a complex class that offers a high number of services, for example, a complex class
implementing a high number of interfaces. A Swiss Army Knife is different from a Blob, because it
exposes a high complexity to address all foreseeable needs of a part of a system, whereas the Blob
is a singleton monopolising all processing and data of a system. Thus, several Swiss Army Knives
may exist in a system, for example utility classes.
Detection Rules
RULE_CARD : SwissArmyKnife {
RULE : MultipleInterface {(STRUCT: MULTIPLE_INTERFACE, 3) };
};