Flyweight Pattern (Structural Design Pattern)
플라이웨이트 패턴이란 ?
- 플라이웨이트 패턴은 객체를 공유하여 메모리를 절약하는 패턴이다.
Why?
객체를 생성할 때마다 메모리를 할당하는 것은 비효율적이다.
따라서, 객체를 공유하여 메모리를 절약하는 패턴이다.
Flyweight Pattern 구성요소
- Flyweight : 공유 객체
- ConcreteFlyweight : 공유 객체의 구현체
구현방법
- 클래스 ClassAttribute를 사용하여 객체를 공유한다.
class Dog:
# ClassAttribute
DNA = "ATACTGADAACC....."
def __init__(self, name):
self.name = name
self.age = 0
-
class DogBreedDNA: def __init__(self, dna,breed): self.dna = dna self.breed = breed
class Dog:
DNA_Tables = {}
@staticmethod
def addDNA(dna,breed):
Dog.DNA_Tables[breed] = DogBreedDNA(dna,breed)
Dog.DNA_Tables[breed].dna = dna
def __init__(self, name):
self.name = name
self.age = 0
728x90
반응형
'Dev > DesignPattern' 카테고리의 다른 글
[Design Pattern]Bridge Pattern (0) | 2023.04.26 |
---|---|
[Design Pattern]Decorator Pattern (0) | 2023.04.26 |
[Design Pattern]Facade Pattern (0) | 2023.04.26 |
[Design Pattern] Proxy Pattern (0) | 2023.04.26 |
[DesignPattern] Adapter Pattern (0) | 2023.04.26 |