Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Интегрированная поддержка факторизации программного кода
Интегрированная поддержка факторизации программного кода
Одним из главных усовершенствований, предлагаемых в Visual Studio 2006, является встроенная поддержка факторизации программного кода. Говоря упрощенно, факторизация означает формальный "механический" процесс усовершенствования существующего базового кода. В прошлом процесс факторизации предполагал огромные объемы ручного труда. В Visual Studio 2005 значительная часть соответствующей работы выполняется автоматически. Используя меню Refaсtor (Факторизация), соответствующие комбинации клавиш, смарт-теги и/или вызовы контекстного меню с помощью щелчков мыши, вы можете придать своему программному коду совершенно новый вид. затратив на это минимум усилий. В табл. 2.4 приведены некоторые общие команды факторизации, распознаваемые в Visual Studio 2005.
Рис. 2.21. Утилита обзора объектов в Visual Studio 2005
Таблица 2.4. Факторизация в Visual Studio 2005
Метод факторизации | Описание |
---|---|
Extract Method (выделение метода) | Позволяет определить новый метод на основе выделенных операторов программного кода |
Encapsulate Field (инкапсуляция поля) | Превращает открытое поле в приватное, инкапсулированное в свойство C# |
Extract Interface (выделение интерфейса) | Определяет новый интерфейсный тип на основе множества существующих членов типа |
Reorder Parameters (перестановка параметров) | Обеспечивает изменение порядка следования аргументов |
Remove Parameters (удаление параметров) | Удаляет данный аргумент из списка параметров |
Rename (переименование) | Позволяет переименовать лексему программного кода (метод, поле, локальную переменную и т.д.) |
Promote Local Variable to Parameter | (перемещение локальной переменной в параметр) Перемещает локальную переменную в набор параметров определяемого метода |
Чтобы проиллюстрировать возможности применения средств факторизации на практике, добавьте в метод Main() следующий программный код.
static void Main(string[] args) {
// Определение консольного интерфейса (CUI)
Console.Title = "Мое приложение".;
Console.ForegroundColor = ConsoleColor.Yellow;
Console.BackgroundColor = ConsoleColor.Blue;
Console.WriteLine("*************************************");
Cоnsole.WriteLine("******** Это мое приложение! ********");
Console.WriteLine("*************************************");
Console.BackgroundColor = ConsoleColor.Black;
// Ожидание нажатия клавиши для завершения работы.
Console.ReadLine();
}
Этот программный код вполне работоспособен, но представьте себе, что вы хотите отображать генерируемую им подсказку в разных местах вашей программы. Вместо того чтобы вводить вручную операторы определения интерфейса снова и снова, было бы идеально иметь помощника, который мог бы делать это за вас. К счастью, в данном случае вы можете применить к существующему программному коду метод факторизации Extract Method (Выделение метода). Сначала в окне редактора выберите все операторы программного кода (за исключением последнего вызова Console.ReadLine()). Затем щелкните правой кнопкой мыши и из появившегося контекстного меню Refactor выберите опцию Extract Method. В появившемся диалоговом окне укажите имя нового метода – ConfigurеCUI(). В результате вы обнаружите, что теперь метод Main() вызывает новый сгенерированный метод ConfigureCUI(), содержащий ранее выделенный программный код.
class Program {
static void Main (string[] args) {
ConfigureCUI();
// Ожидание нажатия клавиши для завершения работы.
Cоnsole.ReadLine();
}
private static void ConfigureCUI() {
// Определение консольного интерфейса (CUI)
Console.Title = "Мое приложение";
Console.ForegroundColor = ConsoleColor.Yellow;
Console.BackgroundColor = ConsoleColor.Blue;
Console.WriteLine("*************************************");
Cоnsole.WriteLine("******** Это мое приложение! ********");
Console.WriteLine("*************************************");
Console.BackgroundColor = ConsoleColor.Black;
}
}
Замечание, Если вы хотите знать больше о процессе факторизации и ее поддержке в Visual Studio 2005, прочитайте мою статью "Refactoring C# Code Using Visual Studio 2005" (Факторизация программного кода C# в Visual Studio 2005), доступную на страницах http://msdn.microsoft.com.
- Возможности Visual Studio 2005
- Утилита обзора решений
- Утилита обзора классов
- Окно определений программного кода
- Утилита обзора объектов
- Интегрированная поддержка факторизации программного кода
- Фрагменты программного кода и окружения
- Средства визуального проектирования классов
- Стенд тестирования объектов (ОТВ-тестер)
- Интегрированная справочная система
- 11.2. СВОЙСТВА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- Глава 5 Агрессивные формы кода и борьба с ними
- Интегрированная безопасность (NT Integrated Security)
- Поддержка SMP
- Стиль написания исходного кода
- Функция программного обеспечения
- Анализ CIL-кода
- Рекламно-информационная поддержка
- 6.1.5. Поддержка WINS
- Исправление ранее написанного кода
- Преобразование WSDL-кода в программный код агента для клиента
- Вызов окна программного кода