Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР6.doc
Скачиваний:
29
Добавлен:
11.11.2019
Размер:
111.1 Кб
Скачать

Примеры шаблонов рефакторинга

Добавление параметра (Add Parameter)

Методу необходимо больше информации от вызывающего.

Следует добавить параметр для переброски этой информации.

Инкапсуляция коллекции (Encapsulate Collection)

Один из методов возвращает коллекцию.

Преобразуйте возвращаемое значение в доступный для чтения вид и организуйте методы добавления и удаления.

Выделение интерфейса (Extract Interface)

Несколько клиентов используют одно и то же подмножество методов интерфейса класса. Или два класса содержат совподающие части интерфейса.

Выделите подмножество в отдельный интерфейс.

Выделение подкласса (Extract Subclass)

У класса есть особенности, которые используются только в некоторых экземплярах.

Создайте подкласс для этого набора особенностей.

Выделение родительского класса (Extract Superclass)

У вас есть два класса с одинаковыми особенностями.

Создайте базовый класс и переместите общие особенности в него.

Скрытие метода (Hide Method)

Метод не используется другими классами.

Сделайте метод закрытым.

Выделение класса (Extract Class)

У вас есть класс, работу которого стоило бы распределить между двумя.

Создайте новый класс и перенесите в него соответствующие поля и методы со старого класса.

Встраивание класса (Inline Class)

Класс мало что делает.

Переместите всю его функциональность в другой класс и удалите старый.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]