Software entities like:

  • Class
  • Libraries
  • Functions should be open for extension, but closed for modification.

Done to avoid single changes causing a cascade of changes to dependent modules.

Examples