Work & Programming/System Design

[Structural Patterns] 특징과 사용례.

자전거통학 2024. 4. 7. 04:26

Adapter 

 ; AuthenticateAdaptor 

 플랫폼간 인증 인자가 다를 때, 내부 서버에 내부 포맷으로 최종적으로 정리해서 보낼 무언가가 있어야 한다. 그때 adaptor를 사용하여 정리 작업을 진행한다. 

 특정 수정/변화를 특정 클래스로 한정시킨다.  

 

Bridge 

 Adaptor와 거이 유사한 경우에 사용하나, Adaptor는 보다 기존 모듈간 연결시, Bridge는 개발해 나가는 특정 모듈에 대해 주로 사용하는 듯 보인다.

 

Composite 

 ; UIComposite 

 특정 객체가 다시 같은 객체를 재귀적으로 품을 수 있는 경우, 해당 객체 관리를 위해 사용한다. 

 

Decorator 

 ; GameCardViewer - 카드를 먼저 그리고, 데이터에 따라 추가적으로 Hot, Vertical 등의 아이콘을 덧그린다.

 어떤 특정 정해진 작업이 있고, 추가적으로 작업이 조건에 따라 필요할 때가 있다. 

 이때 추가적으로 해야 하는 조건에 따른 어떤 작업들을 decorator 에서 전담하게 된다. 

 

Facade 

 CarFacade, GamePlayFacade

 세부 모듈들을 하나의 규칙으로 정리할때 사용한다. 

 마치 여러 sub 객체들을 사용하는 main 함수 같기도 하다.

 

 

Flyweight 

 TextureManager, AssetManager, AudioManager 

 이미 메모리상에 로딩된 특정 객체에대해 각기 할당하지 않고 하나의 버퍼를 공유하여 여러객체에서 접근토록 관리하는 방식.

 

 

Proxy 

 SocketRequester

여러개의 요청을 같은 요청으로 분류하고, 만약 중복된 요청이 있다면, 통합하여 보낸다. 

따라서 서버 자원이 절약될 수 있다.

 

 

 

 

reference : https://refactoring.guru/design-patterns/structural-patterns