확장에는 열려있고 수정에는 닫혀 있어야 한다객체지향 설계 5대 원칙(SOLID)중 하나로 기존 코드를 수정하지 않고도 새 기능이나 요구사항을 추가할 수 있어야 한다는 개념이다.계산기 예제로 살펴보면좋지못한 설계class Calculator { public double calculate(double x, double y, String operator) { if (operator.equals("+")) return x + y; else if (operator.equals("-")) return x - y; else if (operator.equals("*")) return x * y; else if (operator.equals("/")) return ..