🪩/기타

디자인 패턴(Design pattern) : 전략 패턴

S0 2024. 2. 26. 03:14

 

디자인 패턴이란?

프로그램 개발에서 자주 나타나는 과제를 해결하기 위한 방법 중 하나로, 과거의 소프트웨어 개발 과정에서 발견된 설계의 노하우를 축적하여 이름을 붙여, 이후에 재이용하기 좋은 형태로 특정의 규약을 묶어서 정리한 것

(출처: 위키백과)

말이 어렵게 정리되어 있지만, 간단하게 특정한 패턴을 가진 문제 해결 방식을 정의한 것이라고 이해했다.

 

디자인 패턴 중에서도 전략 패턴을 학습해봤다.

 


전략 패턴이란?

객체가 할수있는(나올수있는?) 행위들을 전략으로 정의하고, 행위의 수정이 필요해지면 전략만 수정함으로 행위의 수정까지 가능하도록 만들어주는 패턴

나의 언어로 정리한다고 한건데도 말이 어렵다.

 

먼저 달라지는 부분과 달라지지 않는 부분을 분리하는 캡슐화 작업이 필요하다.

그런 다음 인터페이스를 사용해 객체의 행위를 클래스에서 구현한다.

이것은 행동 인터페이스를 정의하고, 이에 기반한 구체적인 행동을 구현하고, 인터페이스를 포함하는 클래스를 정의하는 식이다.

마지막으로 구체적인 클래스를 정의해준다.

 

이렇게 전략 패턴을 사용하면 캡슐화된(=달라지는) 부분만 교체해서 사용이 가능하다.

이는 상속으로 발생하는 예상치 못한 영향, 그리고 불필요한 코드 작성을 피할 수 있게 해준다.