OCP 개방-폐쇄 원칙 (Open/closed principle) • 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다 • 이런 거짓말 같은 말이? 확장을 하려면, 당연히 기존 코드를 변경? • 다형성을 활용해보자 • 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현 • 역할과 구현의 분리 우테코 1주 차 미션인 자동차 경주 미션을 생각해보자. public class Car { private int position; public void move(int movingValue) { if (movingValue >= STANDARD_OF_MOVING) { position++; } } 자동차가 움직이기 매개변수로 받은 정수가 기준 이상이어야 한다. 현재 이 movingVal..
자바
모든 원시 값을 포장하라라는 말이 있다. 예를 들어 보자. 어떤 로직을 실행하는데 필요한 실행 횟수를 입력받아야 한다. '실행 횟수'인만큼 1 이상인 정수여야 한다. 시도 횟수를 원시 값 그대로 사용할 경우 int attemptNumber = 5; public void excute(int attemptNumber) { if (attemptNumber < 1) { throw new IllegalArgumentException(); } // attemptNumber 사용 } 시도 횟수를 사용하려면 사용하는 곳에서 검증 작업이 들어가야 한다. 만약 이 '시도 횟수'라는 개념이 여러 곳에서도 쓰인다면 이 검증 로직은 매번 들어가야 한다. (int attemptNumber는 신뢰할 수 없으므로 항상 검증하고 사용..