Comment on page

9.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.