10.2 Encapsulation

Complexity

When building large programs, our enemy is complexity.

Some tools for managing complexity:

  • Hierarchical abstraction.

    • Create layers of abstraction, with clear abstraction barriers!

  • “Design for change” (D. Parnas)

    • Organize program around objects.

    • Let objects decide how things are done.

    • Hide information others don’t need.

Managing complexity is super important for large projects!

Modules and Encapsulation

Module: A set of methods that work together as a whole to perform some task or set of related tasks. A module is said to be encapsulated if its implementation is completely hidden, and it can be accessed only through a documented interface.

Last updated