관리 메뉴

caLAB

[개발] Structual Design Pattern - Bridge Pattern, Flyweight Pattern, Composite Pattern 본문

개발 공부/컴퓨터 과학

[개발] Structual Design Pattern - Bridge Pattern, Flyweight Pattern, Composite Pattern

도이(doi) 2022. 5. 3. 15:15
728x90

Bridge Pattern

겉에서 보여지는 외부 Abstraction과 내부에 있는 Implementation을 구분해서 bridge로 연결하는 패턴

예제)

1. 자동차, 모터

2. UI, 버전별 Implementation

예시1. 바깥에서 보여지는 것과 내부 implematation을 분리할 때 bridge패턴을 사용하면 좋음. 예시2. 나중에 class를 추가하기 좋음.

내부 implemation은 Motor이지만 외부는 SUV라는 출력이 나옴. 

 

Flyweight Pattern

공통된 속성을 공유하면 메모리를 효율적으로 사용할 수 있음. 

메모리 소비 감소

Flyweight Pattern의 기본형태

class를 정의할 때 클래스 attribute를 사용하게 되면 해당 값이 오브젝트들 간에 공유되어 메모리 사용량을 줄일 수 있음

*다른 코드에서는 static을 사용하면 됨

Composite Pattern 

한 오브젝트의 그룹과 그 오브젝트의 싱글 인스턴스가 같은 타입으로 취급되는 패턴,

또한 composite 패턴을 통해서 오브젝트들은 트리 구조로 구성할 수 있다. 

 

같은 타입으로 취급된다는 것은 같은 인터페이스를 가지고 있다는 말도 됨. 

 

오브젝트들을 그룹으로 묶고 같은 인터페이스를 제공.

그룹과 오브젝트가 같은 인터페이스를 제공함으로써 root에서 시작된 함수꼴이

트리 안에 있는 모든 오브젝트로 함수가 커지는 구조

728x90
반응형
Comments