투케이2K

66. (TWOK/ALGORITHM) [Kotlin] 패턴 - 싱글톤 패턴 생성 및 사용 예시 본문

투케이2K 알고리즘

66. (TWOK/ALGORITHM) [Kotlin] 패턴 - 싱글톤 패턴 생성 및 사용 예시

투케이2K 2022. 11. 4. 10:24
반응형

[환경 설정 및 설명]

언 어 : Kotlin

설 명 : 패턴 - 싱글톤 패턴 생성 및 사용 예시

 

[요약 설명]

        /**
         * ------------------------------------
         * TODO [요약 설명]
         * ------------------------------------
         * 1. companion object : 별다른 정의 없이 싱글톤 (singleton) 구현을 지원해줍니다. (java >> static)
         * ------------------------------------
         * 2. 싱글톤 형태 static 메소드 변수를 사용하기 위해서는 companion object 내에 선언해주시면됩니다
         * ------------------------------------
         * */
 

[소스 코드]

    // TODO [테스트 메소드 정의 실시]
    fun testMain(){
        Log.i("---","---")
        Log.d("//===========//","================================================")
        Log.i("","\n"+"[Test_Kotlin > testMain() 메소드 : 테스트 함수 동작 실시]")
        Log.d("//===========//","================================================")
        Log.i("---","---")


        /**
         * ------------------------------------
         * TODO [요약 설명]
         * ------------------------------------
         * 1. companion object : 별다른 정의 없이 싱글톤 (singleton) 구현을 지원해줍니다. (java >> static)
         * ------------------------------------
         * 2. 싱글톤 형태 static 메소드 변수를 사용하기 위해서는 companion object 내에 선언해주시면됩니다
         * ------------------------------------
         * */


        try{

            // ------------------------------------

            // [초기 변수 및 객체 선언]
            val userName = S_FinalData.USER_NAME

            // ------------------------------------

            // [로직 처리 실시]
            S_FinalData.printName()

            // ------------------------------------

            // [로그 결과 출력 실시]
            Log.i("---","---")
            Log.w("//===========//","================================================")
            Log.i("","\n"+"[Test_Kotlin > testMain() 메소드 : 로그 결과 출력 실시]")
            Log.i("","\n"+"[userName : "+ userName +"]")
            Log.w("//===========//","================================================")
            Log.i("---","---")

            // ------------------------------------

        }
        catch(e : Exception){
            Log.i("---","---")
            Log.e("//===========//","================================================")
            Log.i("","\n"+"[Test_Kotlin > testMain() 메소드 : 에러 상황 발생]")
            Log.i("","\n"+"[error : "+ e.message +"]")
            Log.e("//===========//","================================================")
            Log.i("---","---")
        }
    }





    // TODO [내부 클래스 정의 실시]
    class S_FinalData {

        // TODO [companion object >> static 선언 실시]
        companion object {

            // [TODO const val >> final 상수 선언 실시]
            const val USER_NAME = "투케이2K"


            // [TODO static >> 메소드 정의 실시]
             fun printName(){
                Log.d("---","---")
                Log.w("//===========//","================================================")
                Log.d("","\n"+"[S_FinalData > printName() 메소드 : 유저 이름 출력 실시]")
                Log.d("","\n"+"[USER_NAME : "+USER_NAME+"]")
                Log.w("//===========//","================================================")
                Log.d("---","---")
            }
        }
    }

 


[참고 사이트]

https://blog.naver.com/kkh0977/222888176338

 

91. (kotlin/코틀린) companion object 사용해 코틀린 싱글톤 패턴 (static) 구현 실시

[개발 환경 설정] 개발 툴 : AndroidStudio 개발 언어 : Kotlin [소스 코드] [결과 출력]

blog.naver.com


 
반응형
Comments