OCP (Open-Closed Principle) 원칙
Open for extension : 새로운 기능의 추가나 변경 사항이 생겼을 때, 기존 코드는 확장할 수 있어야 함
Closed for modification : 기존의 코드는 수정되지 않아야 함
확장에 열려있다는 의미
>> Car 인터페이스를 사용해 새로운 차량을 자유롭게 추가 가능
코드 수정은 닫혀 있다는 의미
>> 기능이 추가되기 때문에 기존 코드의 수정은 불가피
변하지 않는 부분
>> Car 인터페이스를 사용하는 클라이언트인 Driver의 코드를 수정하지 않아도 됨
변하는 부분
>> main()과 같이 새로운 차를 생성하고 Driver에게 필요한 차를 전달해주는 역할은 당연히 코드 수정 발생
>> main()은 전체 프로그램을 설정하고 조율하는 역할
전략 패턴(Strategy Pattern)
디자인 패턴 중 가장 중요한 패턴
알고리즘을 클라이언트 코드의 변경 없이 쉽게 교체
Car 인터페이스가 전략을 정의하는 인터페이스
각각의 차량이 전략의 구체적인 구현
전략을 클라이언트 코드(Driver)의 변경 없이 손쉽게 교체
'Java' 카테고리의 다른 글
Java / 불변 객체 (0) | 2025.02.24 |
---|---|
Java / Object 클래스 (0) | 2025.02.24 |
Java / 추상 클래스와 인터페이스 (0) | 2025.02.23 |
Java / 다형성 (0) | 2025.02.23 |
Java / 상속 (0) | 2025.02.23 |