Эволюция антипаттернов в Java и Kotlin. Михаил Горюнов
Kotlin — это логическое продолжение Java и в некотором смысле результат её эволюции.
Антипаттерны сильно зависят от языка и трансформируются вместе с ним. Я рассмотрю, как антипаттерны изменились, какие исчезли и какие появились новые.
implements Comparable, Serializable name(), ordinal() values(), valueOf() Effective Java, Third Edition by Joshua Bloch Item 3: Enforce the singleton property with a private constructor or an enum type
Role { User(R.drawable.icon_user), Admin(R.drawable.icon_admin), ; @DrawableRes public final int icon; Role(@DrawableRes int icon) { this.icon = icon; } }
from all properties declared in the primary constructor: equals()/hashCode() pair; toString() of the form "User(name=John, age=42)"; componentN() functions corresponding to the properties in their order of declaration; copy() function.