Software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification.
Bertrand MeyerYou can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time.
Bertrand Meyer