Contents
Meta
—
* still in an early stage
—
* still in an early stage
The cohesion of a module is a measure for how well the internal parts of a module (e.g. the methods and attributes of a class) belong together. Having a high cohesion means, that a module should only comprise responsibilities which belong together.
Several kinds of cohesion can be distinguished some of which are strong and some of which are loose. So strong forms of coupling should be preferred: add explanation of cohesion types
Not adhering to this principle, i.e. having a low cohesion, means that one module has several unrelated or only loosely related responsibilities. A change in the requirements for one of these may thus also affect the others which would not be the case in a highly cohesive module.
GRASP | ||||||
---|---|---|---|---|---|---|
Principles | Information Expert | High Cohesion | Low Coupling | |||
Non-Principles | Controller | Creator | Indirection | Polymorphism | Protected Variation | Pure Fabrication |