The Open-Closed Principle is Often Not What You Think it Is

jOOQ is a library that loves making everything internal final and package private. We have tons of classes like these: final class Concat extends AbstractFunction<String> { // ... } The class implements the semantics of SQL string concatenation. Clearly, you shouldn't need to tamper with it (or even know about it), because it is "protected" … Continue reading The Open-Closed Principle is Often Not What You Think it Is