Kotlin
シングルトンオブジェクト
サーチ…
前書き
オブジェクトは特別な種類のクラスで、 object
キーワードを使用して宣言することができます。オブジェクトはJavaのSingleton(デザインパターン)に似ています。これはjavaの静的な部分としても機能します。 Javaからkotlinに切り替える初心者は、静的な、またはシングルトンの代わりに、この機能を大幅に使用できます。
Javaの静的メソッド/フィールドのrepalcementとして使用
object CommonUtils {
var anyname: String ="Hello"
fun dispMsg(message: String) {
println(message)
}
}
他のクラスから、変数と関数をこのように呼び出すだけです:
CommonUtils.anyname
CommonUtils.dispMsg("like static call")
シングルトンとして使用する
実際にはKotlinオブジェクトは単なるシングルトンです。その主な利点は、シングルトンのインスタンスを取得するためにSomeSingleton.INSTANCE
を使用する必要がないことです。
javaでは、シングルトンは次のようになります。
public enum SharedRegistry {
INSTANCE;
public void register(String key, Object thing) {}
}
public static void main(String[] args) {
SharedRegistry.INSTANCE.register("a", "apple");
SharedRegistry.INSTANCE.register("b", "boy");
SharedRegistry.INSTANCE.register("c", "cat");
SharedRegistry.INSTANCE.register("d", "dog");
}
kotlinでは、等価コードは次のようになります。
object SharedRegistry {
fun register(key: String, thing: Object) {}
}
fun main(Array<String> args) {
SharedRegistry.register("a", "apple")
SharedRegistry.register("b", "boy")
SharedRegistry.register("c", "cat")
SharedRegistry.register("d", "dog")
}
それはobvoiuslyあまり冗長な使用することです。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow