ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [패턴] 정적 팩토리(Factory) 패턴
    카테고리 없음 2024. 4. 8. 16:38

    사용 이유

    • 의미있는 이름를 부여할 수 있다. (가독성 좋은 코드)
    • 인터페이스를 사용한다면 하위 타입을 반환할 수 있다.
    • 싱글톤과 연계하여 사용할 수 있다.
    • 객체 생성을 캡슐화 할 수 있다.

    네이밍

    • from - 하나의 인자를 받아서 객체 생성
    • of - 여러 인자를 받아서 객체 생성
    • getInstance - 싱글톤
    • newInstance - 새로운 인스턴스 생성

    간단한 사용법

    class Person private constructor(
        val name: String,
        val order: Int
    ) {
    
        companion object {
            fun of(name: String, order: Int): Person = Person(name, order)
        }
    }
    
    fun main() {
        val person = Person("홍길동", 30) // 불가
        val person = Person.of("홍길동", 30) // 가능
        println("${person.name} ${person.age}") 
    }

     

Designed by Tistory.