author
postNo
status
thumbnail
description
category
tags
createdAt
updatedAt
플라이급 패턴(Flyweight Pattern)
플라이급 패턴이란 메모리풀을 미리 형성하여 참조하는 개체를 처음 사용할 때 저장한 뒤에, 그 이후에 사용할 때에는 외부에서 불러오지 않고 저장해놓은 데이터를 사용하는 패턴
예제
아파트 한채에 입주자의 목록을 정리한다고 생각해봅시다.
이렇게 생성했지만
roomCount와 toiletCount가 집마다 동일하다는것을 발견했습니다. 모든 집에 집주인 이름은 다를 수 있지만, 집의 구조나 방개수, 화장실 개수는 모두 동일한 상태입니다.
이런 경우 메모리를 아끼기 위해 다음과 같이 사용할 수 있습니다.
1번 집이 방의 벽을 부수고 2개의 방을 1개로 합쳤다면
프로토타입을 공유하지만 apartment1의 방 개수를 바꾸어도 apartment2와는 상관없기 때문에 roomCount를 각각 관리할 수 있습니다.
이와 같은 패턴을
플라이급 패턴 이라고 하고, 이는 싱글턴 패턴과 함께 사용하는 경우가 많습니다.