Bin's Blog

오늘의 CS(디자인 패턴 - 전략 패턴) 본문

CS

오늘의 CS(디자인 패턴 - 전략 패턴)

hotIce 2023. 5. 4. 12:15
728x90

1. 전략 패턴이란?

  • 정책 패턴이라고도 하며, 행위를 바꾸고 싶은 경우 "직접" 수정하지 않고 전략이라고 부르는 "캡슐화한 알고리즘"을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴이다.
  • 예를 들어, 우리는 학교에 가는 방법으로 걷기, 자전거 타기, 버스 타기 등 여러 가지 방법을 선택할 수 있다. 전략 패턴은 이렇게 여러 가지 방법 중 하나를 선택해서 사용할 수 있도록 도와주는 도구이다. 
  • 이렇게 전략 패턴을 사용하면, 프로그램이 실행되는 도중에 어떤 작업을 어떻게 할지 바꿀 수 있어서 유연하게 대처할 수 있다. 

 

 

 

 

* 캡슐화?

  • 데이터와 그 데이터를 처리하는 함수를 하나의 "캡슐"처럼 묶는 것을 말한다. 이렇게 하면 데이터와 관련된 기능들이 서로 관계가 있기 때문에 코드를 이해하고 유지보수하기가 쉬워진다.
  • 예를 들어, 초콜릿을 포장하면 초콜릿이 녹거나 손상되지 않게 보호할 수 있고, 꺼내 먹기가 편리하다. 캡슐화도 이와 같이 정보와 기능을 보호하고 관리하기 쉽게 만든다. 

* 컨텍스트

  • 코드가 어떤 상황에서 실행되는지를 말한다.(환경이나 상황) 
  • 예를 들어, 친구들과 놀이터에서 노는데 누군가 "찾아라"를 외쳤다. 여기서 "찾아라"라는 말의 의미는 상황에 따라 달라진다. 놀이터에서 숨바꼭질을 하고 있다면, "찾아라!"라는 말은 숨어있는 친구들을 찾으라는 뜻이다. 근데 물건을 찾는 게임을 하고 있다면 "찾아라!"라는 말은 물건을 찾으라는 뜻일 것이다. 여기서 상황이 바로 컨텍스트이다.
  • 코드를 실행할 때 주변에 어떤 정보가 있는지, 어떤 일을 할 수 있는지에 따라서 컨텍스트가 결정되고, 이 컨텍스트를 이해하면 코드가 어떻게 동작하는지 더 잘 이해할 수 있다. 
  • 함수 내에서는 컨텍스트는 일반적으로 해당 함수가 호출되는 시점에서의 실행 환경을 포함한다. 이때 실행 환경에는 매개변수, 지역변수, 그리고 외부 전역 변수에 접근할 수 있는 정보가 포함된다. 

 

728x90