Программная иженерия Андрей Дмитриев andrei-dmitriev@yandex.ru ©2007-2010.

Презентация:



Advertisements
Похожие презентации
Программная иженерия Андрей Дмитриев ©
Advertisements

Программная инженерия Андрей Дмитриев ©
Программная инженерия Андрей Дмитриев ©
Основы информатики Классы Заикин Олег Сергеевич zaikin.all24.org
Программная иженерия Андрей Дмитриев ©
1 © Luxoft Training 2012 Java: расширенные вопросы Модуль #8.
Полиморфизм. Полиморфизм – это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
1 Федеральное агентство по образованию Государственное образовательное учреждение Московский государственный индустриальный университет (ГОУ МГИУ) Москва.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 7 Методы как средство реализации операций Лекции читает кандидат технических наук.
Программная оболочка Hyper Service (Hyper Service NV)
1 Классы в Java Ключевое слово class означает: Я говорю тебе, как выглядит новый тип объекта. Класс является базовым элементом объектно-ориентированного.
Таблицы Word План 1.Таблица в Word – это … 2.Способы создания таблиц 3.Форматирование текста в таблицах.
1 Java 6. ИНТЕРФЕЙСЫ И ВНУТРЕННИЕ КЛАССЫ. 2 Интерфейсы Не являются классами Ни один из объявленных методов не может быть реализован внутри интерфейса.
Преобразования типов В языке C/C++ имеется несколько операций преобразования типов. Они используются в случае, если переменная одного типа должна рассматриваться.
1 Java 6. ИНТЕРФЕЙСЫ И ВНУТРЕННИЕ КЛАССЫ. 2 Интерфейсы Не являются классами Ни один из объявленных методов не может быть реализован внутри интерфейса.
Создание презентаций в Power Point. Слайды в PowerPoint С помощью приложения PowerPoint текстовая и числовая информация легко превращается в красочно.
Выполнил: Студент 3 курса Белев Александр. Презентация PowerPoint В сущности, это слайд-шоу. Чтобы донести сообщение или рассказ, их нужно разбить на.
Белорусский государственный университет Подготовила Студентка экономического факультета Отделение: Экономика Панькова Анастасия Минск 2008.
Лекция 4. Введение в С++ Наследование, множественное наследование. Конструкторы, деструкторы. Виртуальные функции.
Основы ООП и C# Работа с объектами и классами. Классы Класс специальный тип данных для описания объектов. Он определяет данные и поведение типа. Определение.
Транксрипт:

Программная иженерия Андрей Дмитриев ©

Автоматизация рефакторинга

Программа Возможности текстового редактора. Автоматическая вставка. Создание методов (implement и override). Рефакторинги.

Настройки текстового редактора Среда разработки позволяет изменять настройки текстового редактора: Добавление закрывающего символа. Разбиение строк. Отображение номеров строк. Дополнение кода. Горячие клавиши. Макросы. Форматирование кода. Выбор цветовой схемы подсветки кода. И т.д.

Окно настроек

Автоматическая вставка Дополнение имен классов, методов и полей. Добавление закрывающего символа. Вставка шаблонов кода. Разбиение длинных строк. Добавление необходимых import-ов и удаление неиспользуемых.

Создание методов Среда разработки предоставляет возможность переопределить пустыми телами некоторые методы при: реализации интерфейсов, наследовании от другого класса.

Рефакторинги Простые Переименование. Безопасное удаление кода. Изменение сигнатуры и уровня доступа. Инкапсуляция поля. Использование супертипа. Перемещения Перемещение класса. Перемещение метода или поля. Выделение метода. Выделение интерфейса. Выделение суперкласса. Вынесение внутреннего класса. Преобразование анонимного класса во внутренний.

Переименование При переименовании среда автоматически заменяет старое имя на новое везде, где это необходимо. Переименовывать таким образом можно: Классы и интерфейсы, Локальные переменные, Методы, Поля.

Безопасное удаление кода Безопасное удаление кода предполагает проверку того, что данный код нигде больше не используется. Безопасное удаление может быть применено к: Классам и интерфейсам, Методам, Полям, Локальным переменным.

Безопасное удаление кода (пример)

Изменение сигнатуры и уровня доступа Описание метода может быть изменено: Добавлением параметра, Удалением неиспользуемых параметров, Изменением порядка параметров, Изменением уровня доступа к методу.

Инкапсуляция поля Один из паттернов проектирования – организация доступа к данным исключительно через методы. При необходимости использования такого паттерна среда разработки может : > Создать методы для доступа к указанному полю, > Изменить модификатор доступа к полю, > Заменить все обращения к полю на вызов метода во всем коде.

Перемещение класса Класс может быть перемещен в другой пакет с соответствующим изменением всего зависимого кода.

Перемещение метода или поля Данный рефакторинг важен для изменения структуры наследования в проекте. Член класса может быть перемещен: В другой класс или интерфейс с соответствующим изменением всего зависимого кода. В том числе: В суперкласс или суперинтерфейс, В подкласс или подинтерфейс, В подкласс с добавлением абстрактного описания в данный класс. Метод может быть оставлен на прежнем месте и его абстрактное описание может быть добавлено в суперкласс.

Перемещение метода или поля: пример public class Phone { private int phonePrice = 100; public int getPrice() { return phonePrice; } Поле нового класса относится к телефону вцелом. public class Communicator extends Phone { private String vendorName; public int getPrice() { return 600; } public String getVendorName(){ return vendorName; }

Перемещение метода или поля Вниз по иерархии: Вверх по иерархии:

Перемещение метода или поля: результат public class Phone { private String vendorName; private int phonePrice = 100; public int getPrice() { return phonePrice; } public String getVendorName() { return vendorName; } public class Communicator extends Phone { public int getPrice() { return 600; }

Выделение метода При разработке проекта часто возникает необходимость разбить код на независимые части – методы. Данный рефакторинг позволяет: Поместить выделенный кусок кода в отдельный метод, Поместить в данное место вызов нового метода.

Выделение метода: пример

Выделение метода: результат

Выделение интерфейса Данный рефакторинг используется при разделении программного интерфейса и реализации. При этом: > Создается новый интерфейс, который содержит описания указанных публичных методов, > Добавляется выражение implements с именем нового интерфейса в данный класс.

Выделение суперкласса Используется для формального объединения нескольких классов через похожие методы. Возможны варианты: > Перенести тело метода в суперкласс, > Создать в суперклассе абстрактный метод.

Использование супертипа Данный рефакторинг изменяет код на использование ссылок на суперкласс там, где это возможно. Используется для: Ослабления зависимостей от конкретной реализации, Обобщении типов аргументов методов. Часто используется в связке с «Выделением суперкласса».

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

Вынесение внутреннего класса: результат

Преобразование анонимного класса во внутренний Анонимные классы могут быть востребованы другими классами.

Преобразование анонимного класса во внутренний: результат Данный рефакторинг позволяет выделить анонимные классы во внутренние и снабдить их конструкторами.

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

Ссылки М. Фаулер, Рефакторинг Слайды «Основы рефакторинга» Онлайн-курсы:

Q&A

Спасибо! Андрей Дмитриев ©