# Рефакторинг функций расширения в Kotlin: использование объекта-компаньона

DevFeed: [Рефакторинг функций расширения в Kotlin: использование объекта-компаньона](<https://devfeed.tech/articles/kotlin-23643.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/badoo/articles/575550/>)

Author: ChPr (Badoo)

Published: 2021-08-31T12:09:10Z

Content type: tutorial

Language: ru

Sources: [Badoo EN](<https://devfeed.tech/sources/badoo-en.md>), [Badoo RU](<https://devfeed.tech/sources/badoo-ru.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Java](<https://devfeed.tech/topics/java.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [java](<https://devfeed.tech/tags/java.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [tag-8ecb3d630e31](<https://devfeed.tech/tags/tag-8ecb3d630e31.md>)

## AI overview

This article explains how Kotlin extension functions can become difficult to test and maintain when they accumulate business logic. It discusses singleton-related testability problems, increasing complexity, and refactoring toward a companion object.

## Source excerpt

В Kotlin есть отличная возможность использовать функции расширения, позволяющие писать более выразительный и компактный код. Под капотом это просто статические методы, которые могут навредить кодовой базе при некорректном использовании. В этой статье я расскажу, как работать с функциями расширения, которые со временем из небольших добавлений к коду трансформировались в монстров, содержащих бизнес-логику. Читать далее