본문 바로가기

CS knowledge/Design Pattern

전략 패턴

1. 전략 패턴이란?

객체의 행위를 바꾸고 싶은 경우, 파라미터에 행위의 방법 객체를 넣어서 해당 방법 객체의 클래스에서 구현된 행위를 사용하는 방법, 해당 행위 구현부의 파라미터를 인터페이스 설정하여 인터페이스를 기반으로 구현된 여러 클래스의 유연한 사용을 가능하게 한다.

class 행위1 implements 행위_인터페이스{
	...
}

class 행위2 implements 행위_인터페이스{
	...
}

class System{
    void pay(행위_인터페이스 행위_){
        행위_pay();
    }
}


void main(){
	System system = new System();
    
    system.pay(new 행위1());
    system.pay(new 행위2());
}

 

위의 수도 코드에서  하나의 system.pay에서 파라미터만 변경해서 pay의 방법(행위)를 변경 시킬 수 있다.

 

전략 패턴에서 전략은 행위를 런타임시 바꿀 수 있는 효율적인 전략이라고 생각하면 된다. 따라서 전략 = 행위라고 생각해도 된다.

 

2. 장점

결합도가 낮아지고 가독성이 좋아진다.

 

 

3. 활용 라이브러리

전략 패턴을 활용한 라이브러리로는 PassPort가 있다.

전략을 passport.use의 파라미터에 넣어서 사용한다.

'CS knowledge > Design Pattern' 카테고리의 다른 글

SingleTon And Factory Pattern  (1) 2025.07.22
Dependency Injection Principle  (1) 2025.07.15