본문 바로가기

CS

플라이웨이트(Flyweight) 패턴

반응형

플라이 웨이트 패턴은 인스턴스가 필요할 때마다 매번 생성하는 것이 아니고 가능한 한 공유해서 사용함으로써 메모리를 절약하는 패턴이다.

다수의 유사 객체를 생성하거나 조작할 때 유용하게 사용할 수 있다.

 

Java와 코틀린의 String Pool 방식이 이와 같다.

 

테스트 코드:

class ExampleUnitTest {
    @Test
    fun addition_isCorrect() {
        var str1 = "ABCD"
        var str2 = "ABCD"
        println(str1.hashCode())
        println(str2.hashCode())

        str1 = "ABCDE"
        str2 = "ABCDEF"

        println(str1.hashCode())
        println(str2.hashCode())
    }
}

 

 

반응형

'CS' 카테고리의 다른 글

소프트웨어 생명 주기  (0) 2021.04.02
Process와 Thread의 차이  (0) 2021.03.29
Bit, Byte 2진수 16진수 관계 정리  (0) 2020.12.22
HTML <dl> 태그  (0) 2020.11.30
.inc 파일이란 무엇인가?  (0) 2020.11.30