TIL

[TIL] 내일배움캠프_Unity 전략패턴, 유니티 컴포넌트 패턴

Hwone 2023. 9. 26. 00:24

전략패턴 

: 알고리즘 군을 정의하고 캡슐화해서 각각의 알고리즘군을 수정해서 쓸 수 있게 해준다

전략패턴을 사용하면 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있다 

 

* 캡슐화 : 달라지는 부분을 찾아서 나머지 코드에 영향을 주지 않도록 한다 그러면 코드를 변경하는 과정에서 의도치 않게 발생하는 일을 줄이면서 시스템의 유연성을 향상시킬 수 있다 

 

즉, 어떤 일을 수행하는 알고리즘이 여러가지 일 때, 동작들을 미리 전략으로 정의함으로써 손쉽게 전략을 교체할 수 있는, 알고리즘 변형이 빈번하게 일어나는 경우에 적합한 패턴이다 

 

구조 

1. 전략 알고리즘 객체들 : 알고리즘, 행위, 동작을 객체로 정의한 구현체 

2. 전략 인터페이스 : 모든 전략 구현에제 대한 공용 인터페이스 

3. 컨텍스트 : 알고리즘을 실행해야 할 때 마다 해당 알고리즘과 연결된 전략 객체의 메소드를 호출

(콘텐츠를 담는 그 무언가를 뜻하며, 어떤 객체를 핸들링하기 위한 접근 수단) 

4. 클라이언트 : 특정 전략 객체를 컨텍스트에 전달 함으로써 전략을 등록하거나 변경하여 전략 알고리즘을 실행한 결과를 누린다 

 

주의점 

- 알고리즘이 많아질수록 관리해야할 객체의 수가 늘어난다 

- 만일 알고리즘이 많지 않고 자주 변경되지 않는다면, 새로운 클래스와 인터페이스를 만들어 프로그램을 복잡하게 만들 이유가 없다 

 

컴포넌트 패턴

(A has B) 

: 빈 컨테이너에 필요할 때마다 원하는 기능을 갖다 붙여 포함시키는 방식.(부품)

- 각자의 기능을 가지고 있는 스스로 동작하는 독립적인 부품이다 

 

장점

- 컴포넌트를 뗀다고 해서 오브젝트의 다른 컴포넌트에 영향이 가지 않는다 

- 컴포넌트들끼리 독립적이며 커플링이 없다 

- 부품을 갈아끼면 그만 

- 코드의 의존성을 줄이고 재활용성을 높인다 

 

컴포넌트 패턴을 바탕으로 팀과제를 구현할 예정이다..