Singleton 패턴

Object 클래스를 이해하기 위해서는 먼저 singleton패턴에 대한 간단한 이해가 필요하다. singleton패턴은 객체 지향에서 꽤 자주 사용하는 패턴으로 간단하게 말하면 한 개의 인스턴스 생성을 보장하고 코드 어디에서나 접근 가능하게 하는 것

객체의 생성을 제한하여 한 개의 인스턴스만 생성되도록 하는 것, 또한 객체에 접근할 수 있는 방법을 공개하여 누구나 객체를 사용할 수 있도록 하는것.

 

public class Singletonjava{
	
    // 생성자를 private로 감춘다.
	private SingletonJava(){}
    
    //생성된 객체를 private로 감추고 프로그램 시작할 때 초기화 한다.
    //인스턴스 생성방법은 처음 사용할때 초기화 하는 방법, 쓰레드 동기화 방법등 다양한 방법이 있다.
    private static Singletonjava instance = new SingletonJava();
    
    //외부에서 생성된 instance에서 접근 할수 있는 방법을 제공
    public static Singletonjava getInstance(){
    	return instance;
    }
    
    public void log(String text){
    	System.out.print(text);
    }
}

테스트 코드

@Test
public void testSingletonJava(){
	// 생성자를 private로 감춰서 new로 생성불가 - 주석을 풀면 에러 발생
    // SingletonJava singletonJava = new Singletonjava();
    
    //외부에 공개된 getInstance() 메소드로 객체에 접근
    SingletonJava singletonJava = SingletonJava.getInstance();
    
    // 객체의 메소드 사용가능
    singletonJava.log("hi, singleton");
}

코틀린으로 싱글톤 구현하기

object SingletonKotlin{
	fun log(text:String){
    	println(text)
    }
}

'object'키워드는 "해당 클래스가 싱글턴임"을 알려 준다. 어차피 싱글턴 패턴은 거의 뻔한 코드를 사용하는 것이므로 그냥 키워드로 제공하는 것이다. 단순히 object키워드를 사용하는 것만으로 java에서 꽤 복잡하게 작성한 코드들을 생략 가능하게 되는 것이다.

'공부내용정리 > 안드로이드' 카테고리의 다른 글

Collection의 함수형 API  (0) 2021.10.11
(Kotlin) 클래스의 가시성 변경자  (0) 2021.10.10
코틀린 프로퍼티 위임  (0) 2021.10.06
Java의 정적 유틸리티 클래스  (0) 2021.08.25
코틀린 함수  (0) 2021.08.25

+ Recent posts