---
title: "Альтернативные классы с разными интерфейсами"
type: "code-smell"
slug: "alternative-classes-with-different-interfaces"
url: "http://localhost:3000/ru/smells/alternative-classes-with-different-interfaces.md"
category: "Нарушители объектно-ориентированного дизайна"
description: "Два класса выполняют одинаковые функции, но имеют разные названия методов."
---
# Альтернативные классы с разными интерфейсами

> Два класса выполняют одинаковые функции, но имеют разные названия методов.

## Signs and Symptoms

Два класса выполняют одинаковые функции, но имеют разные названия методов.

## Reasons for the Problem

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

## Payoff

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

**Treated by**

- [Переименование метода](/ru/rename-method.md)
- [Перемещение метода](/ru/move-method.md)
- [Добавление параметра](/ru/add-parameter.md)
- [Параметризация метода](/ru/parameterize-method.md)
- [Извлечение суперкласса](/ru/extract-superclass.md)

