Java

Java / 다형성과 설계

Dear-J 2025. 2. 23. 21:24

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