Originally posted by Amirthalingam Prasanna:
A class should represent one thing and represent it well - Cohesion
A class should have less dependency with other classes - Coupling
If you model your class so that it has the attributes and the methods that work on those attributes as one tight unit thats cohesion.
But your class will still need to use objects from other classes.
Don't expose your data just expose methods to work on the data to reduce coupling.