In
object-oriented programming, the
open/closed principle states "
software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification"; that is, such an entity can allow its behaviour to be extended without modifying it
source code.