This question already has an answer here:
My coworker and I have having an argument. The Open and closed principle is defined as:
A module will be said to be open if it is still available for extension. For example, it should be possible to add fields to the data structures it contains, or new elements to the set of functions it performs. A module will be said to be closed if [it] is available for use by other modules. This assumes that the module has been given a well-defined, stable description (the interface in the sense of information hiding)
My coworker states that renaming a class (Private/Or Public) without increasing the MAJOR version violates the Open and Closed Principle.
My view is
- You should only increase the major version if it fully breaks functionality.
- Refactoring and class renaming do not fall under the open and close principle in general.
Does Renaming a class fall under the open and closed principle