Everyone tells you that you should strive for:
High cohesion, low coupling.
Cohesion is about how well elements within a module belong together and serve a common purpose. Coupling is about how much one module depends or interacts with other modules. Thus, cohesion is an intra-module concern whereas coupling cuts across modules [aka inter-module].
- Example of High Cohesion and Low Coupling with Presenter, View, and View Model: These components can form a logical unit, a module; or you can group them ‘by name’ and destroy cohesion.
- Edward Yourdon: Structured Design (1979). As far as I know this book analyzed various forms and degrees of coupling.