다수의 객체 사용시 메모리 사용량을 줄여주는 패턴이다.
만약 강아지 객체 하나당 위와같은 메모리를 사용한다면
1000개의 강아지 객체만 만들어도 용량이 너무나 커질 것이다.
만약 모든 강아지 객체의 DNA가 동일하다면
하나의 DNA정보를 저장하고 모두 이 정보를 가리키도록 하면
메모리를 아낄 수 있을 것이다.
위와 같이 DNA정보를 인수로 받지않고 미리 저장해두면 Dog 객체간 공유된다.
다른 언어의 경우 static 변수로 저장한다.
만약 모든 강아지의 DNA정보가 같은 것이 아니라 같은 종들의 DNA만 같다면
종의 DNA 클래스를 만들고
addDNA함수로 종을 key로 하여 DNA_Table배열에 DogBreedDNA객체를 저장한다.
실행하는 과정을 보면