TIl. kotlinモノトーンパターン

4588 ワード


モノトーンパターンとは?


新しいインスタンスを作成せずに1つのオブジェクトのみを使用するたびに使用します.これは、クラスを定義しながらインスタンス(オブジェクト)を作成することを意味します.

  • クラスのインスタンスが1つしかないことを確認し、そのインスタンスのグローバルコンタクトポイントにアクセスできる設計モードを提供します.

  • アプリケーションから終了まで固定メモリ領域を作成するだけで済むため、メモリを効率的に使用できます.

  • 単一のインスタンスはグローバルに使用されるため、他のクラスのインスタンスが変更データを共有できるという利点があります.

  • 簡単に言えば、すべてのクラスのグローバル使用可能なフィールドまたはメソッド(任意の場所からアクセス可能なフィールドまたはメソッド)を1回宣言するだけで作成できます.
  • 例😃


    デフォルトでは、コトリンは言語自体で単転をサポートしています.
    fun main() {
    	println(Data.a1)
    	println(dataRepository.a1)
    }
    
    object Data {
        
       var a1: String = "sls"
    }
    
    val dataRepository = Data
    

    その他の例

    
    object Github{
    	private const val BASE_URl = "https://api.github.com"
    	
    	private val retrofit: Retrofit = Retrofit.Builder().baseUrl(BASE_URl)
    	.addConverterFactory(GsonConverterFactory.create()).build()
    	
    	val service:GithubService = retrofit.create(GithubService::class.java)
    }

    Companion Object


    companionin objectを使用すると、javaなどの単一トーンモードをcottlinで使用できます.Javaのような静的メンバー.
    class BBQ {
    	companion object {
    		const val pizza = "delicious"
    		
    		fun cheeze() { 
    			// do something
    		}
    	}
    }
    

    整理する


    シングル回転アレイには一定のメモリ領域があるため、メモリを効率的に使用できます.また、すべてのクラスのグローバル使用可能なフィールドまたはメソッドを1回の宣言で作成することもできます.