"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 its source code."@en .