본문 바로가기
[CS] - Design Pattern

#1. 싱글턴 패턴 (Singletone Pattern)

by Bebsae 2020. 12. 10.

짧지만... 첫 직장에서 Unity를 개발했다. 생전 처음으로 Unity를 접해본 나는 Component, GameObject등 다양한 타입의 객체들이 있었는데 무작정 작동을 하는데에만 신경을 쓴 나머지 같은 객체의 생성자를 불필요하게 남발한 적이 있다. 그리고, 필자는 책임님한테 무지하게 혼났다능..ㅠㅠ 그리고 디자인패턴에 관심을 가지게 되어 처음으로 공부한 패턴이다.

 

이 글을 보는 분은 나같은 화를 당하지 않았으면 하는 마음이다..

 

각설하고, 싱글턴 패턴은 위에서 쓴 강조표시 그대로 객체의 생성을 단 한번만 하는게 초점이라고 생각한다. 그럼 코드를 보기 전에 상상해보자. "단 한번"이라는 조건이 붙어있기 때문에 해당 객체가 존재한다면? 생성자를 호출하지 않고, 존재하지 않을때에만 즉, 메모리상에 해당 객체가 적재되어 있지 않을 때만 생성자를 호출해야한다. 그리고 필자처럼 생성자를 남발하는 일을 막으려면 생성자를 private으로 선언해야 한다.

 

public class Operator {
    private static Operator op = null;
    
    private Operator() {} // 생성자를 private으로 설정. (남발방지)
    
    private static Operator getOperator(){
    	if (op == null) { // 객체가 존재하지 않을 경우에만
        	op = new Operator(); // 생성한다.
        }
        return op;
    }
}

댓글