Продолжаем цикл статей про Kotlin:

Security light by Chance Agrella

Вы часто используете синглтоны? Если так, то вы еще не читали вопрос про синглтоны… или вы пишете на современном JVM языке. Потому что документация к Kotlin говорит: Singleton is a very useful pattern

Например, Роберт Мартин подробно объясняет, почему не надо использовать этот паттерн. Но разработчики из JetBrains думают иначе, и поэтому синглтоны в Kotlin теперь создавать очень просто:

object A {
    fun hello() {
        println("Hello")
    }
}
fun main(args: Array<String>) {
    A.hello()
}

A - это синглтон. Декомпилируем?

public final class A {
   public static final A INSTANCE;

   public final void hello() {
      String var1 = "Hello";
      System.out.println(var1);
   }

   private A() {
      INSTANCE = (A)this;
   }

   static {
      new A();
   }
}

Не надо использовать синглтоны в коде. Я не первый, кто это говорит. Однако, в свежем JVM языке синглтон можно сделать используя, всего-навсего, ключевое слово object.


Вы все еще думаете, что язык, на котором можно очень просто написать неподдерживаемый код, стоит использовать в своем проекте? Подумайте еще раз.