전략패턴
: 알고리즘 군을 정의하고 캡슐화해서 각각의 알고리즘군을 수정해서 쓸 수 있게 해준다
전략패턴을 사용하면 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있다
* 캡슐화 : 달라지는 부분을 찾아서 나머지 코드에 영향을 주지 않도록 한다 그러면 코드를 변경하는 과정에서 의도치 않게 발생하는 일을 줄이면서 시스템의 유연성을 향상시킬 수 있다
즉, 어떤 일을 수행하는 알고리즘이 여러가지 일 때, 동작들을 미리 전략으로 정의함으로써 손쉽게 전략을 교체할 수 있는, 알고리즘 변형이 빈번하게 일어나는 경우에 적합한 패턴이다
구조
1. 전략 알고리즘 객체들 : 알고리즘, 행위, 동작을 객체로 정의한 구현체
2. 전략 인터페이스 : 모든 전략 구현에제 대한 공용 인터페이스
3. 컨텍스트 : 알고리즘을 실행해야 할 때 마다 해당 알고리즘과 연결된 전략 객체의 메소드를 호출
(콘텐츠를 담는 그 무언가를 뜻하며, 어떤 객체를 핸들링하기 위한 접근 수단)
4. 클라이언트 : 특정 전략 객체를 컨텍스트에 전달 함으로써 전략을 등록하거나 변경하여 전략 알고리즘을 실행한 결과를 누린다
주의점
- 알고리즘이 많아질수록 관리해야할 객체의 수가 늘어난다
- 만일 알고리즘이 많지 않고 자주 변경되지 않는다면, 새로운 클래스와 인터페이스를 만들어 프로그램을 복잡하게 만들 이유가 없다
컴포넌트 패턴
(A has B)
: 빈 컨테이너에 필요할 때마다 원하는 기능을 갖다 붙여 포함시키는 방식.(부품)
- 각자의 기능을 가지고 있는 스스로 동작하는 독립적인 부품이다
장점
- 컴포넌트를 뗀다고 해서 오브젝트의 다른 컴포넌트에 영향이 가지 않는다
- 컴포넌트들끼리 독립적이며 커플링이 없다
- 부품을 갈아끼면 그만
- 코드의 의존성을 줄이고 재활용성을 높인다
컴포넌트 패턴을 바탕으로 팀과제를 구현할 예정이다..
'TIL' 카테고리의 다른 글
[TIL] 내일배움캠프_Unity C# 자료구조, DotsWeen, Cinemachine (0) | 2023.09.27 |
---|---|
[TIL] 내일배움캠프 _ Unity 인트로 애니메이션 (feat.타임라인) (0) | 2023.09.26 |
[TIL] 내일배움캠프_Unity 3D 강의 완강 (Camera , TryGetComponent 복습, AI Navigation, Animation Event) (0) | 2023.09.24 |
[TIL] 내일배움캠프_Unity ToolTip (feat.null 이 널 좋아해) ,내배캠 인터뷰 후기 (0) | 2023.09.22 |
[TIL] 내일배움캠프_Unity 개인과제 회고 (0) | 2023.09.21 |