개발놀이터

면접 준비 : 전략 패턴 본문

CS 지식/면접준비

면접 준비 : 전략 패턴

마늘냄새폴폴 2022. 7. 6. 04:14

Q. 전략 패턴이 뭔가요?
A. 객체들이 할 수 있는 행위 각각에 대해 전략 클래스를 생성하고, 유사한 행위들을 캡슐화 하는 인터페이스를 정의하여, 객체의 행위를 동적으로 바꾸고 싶은 경우 직접 행위를 수정하지 않고 전략을 바꿔주기만 함으로써 행위를 유연하게 확장하는 방법을 말합니다. 

Q. 전략 패턴을 왜 사용하나요?
A. 새로운 전략을 추가하더라도 기존 코드를 변경하지 않아도 되고, 상속 대신 위임을 사용한다는 장점이 있습니다. 위임을 사용한다는 것은 상속을 강요하지 않는다는 것이고 이는 상속이 정말 필요한 곳에 쓰일 수 있다는 뜻입니다.

Q. 전략 패턴을 언제 사용하나요?
A. 런타임에 전략을 바꾸고 싶을 때 사용합니다. 

Q. 전략 패턴과 템플릿 메서드 패턴의 차이점이 뭔가요?
A. 템플릿 메서드 패턴은 부모 클래스에 변하지 않는 템플릿을 두고, 변하는 부분을 자식 클래스에 두어서 상속으로 통해 문제를 해결한다면 전략 패턴은 변하지 않는 부분을 Context라는 곳에 두고, 변하는 부분을 Strategy라는 인터페이스를 만들고 해당 인터페이스를 구현하도록 해서 문제를 해결합니다. 템플릿 메서드 패턴은 상속으로, 전략 패턴은 위임으로 문제를 해결한다고 정리할 수 있겠습니다. 

 

https://coding-review.tistory.com/117

 

전략 패턴

전략패턴이란 무엇인가? 전략패턴이란 객체가 할 수 있는 각각의 행위에 대해 전략클래스를 생성하고 유사한 행위들을 캡슐화하는 인터페이스를 정의하여 객체의 행위를 동적으로 바꾸고 싶은

coding-review.tistory.com