High quality software designs are easier and safer to work with. Investing in quality demands discipline and skill. Good design principles are usually helpful. But, are they always applicable?
This post investigates the applicability of the “Open-Closed Principle” when we add new functionality to a software design whose source code is entirely under our control.
Our argument is based on Dijkstra’s concept of separation of concerns.