Managing Change

Estimated time to read: 1 minute

Programs are enhanced to more than was originally anticipated. Without Object-Orientation and good management, the less manageable and fragile the codebase becomes.

The more intwined and entangled code bases are, the more delicate they are. This can be reduced by using coupling.

The less coupling in a codebase, the more flexible the codebase.

Object Oriented design addresses this through functional separation / encapsulation.

  • Programs are divided into many small separate units/classes, each of which serves a very specific need.
  • Separation makes enhancements easier and programs more reusable / extensible

To enable good cohesion, a class should only have one responsibility and do one thing. It should be able to be replaced, reused or even abandoned without affecting anything else as long as the contract / interface is the same.