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
'Work & Programming > System Design' 카테고리의 다른 글
[Creational Pattern] - Singleton (0) | 2024.05.15 |
---|---|
[Creational Pattern] - Builder (0) | 2024.05.15 |
[Creational Pattern] - Abstract Factory (0) | 2024.05.15 |
[Creational Patterns] 특징과 사용례. (0) | 2024.04.07 |
[Architecting] Why would we need this? (0) | 2024.04.06 |