Диалоговое окно Encapsulate Field

Оценить
(0 голоса)

Диалоговое окно Encapsulate Field (рис. 9.22) позволяет вам настроить несколько опций для этой операции рефакторинга. Во-первых, оно представляет то поле, которое вы хотите подвергнуть рефакторингу, в текстовом поле Field name. Затем, оно позволяет вам задать имя для нового свойства. Хорошая новость состоит в том, что инструмент рефакторинга попытается корректно назвать ваше свойство. Наприцер, если у вас есть закрытое поле с именем _rating, то инструмент выберет по умолчанию Rating в качестве имени свойства.

Рис. 9.22. Диалоговое окно Encapsulate Field

Дополнительная опция этого диалогового окна— это выбор ссылок, которые вы хотели бы обновить. Здесь имеются в виду существующие ссылки на данное поле. Предположим, что у вас есть открытое поле. Это поле может вызываться как внутри объекта, который его опре­деляет, так и другими (внешними) объектами. Возможно, вы захотите принудительно обес­печить использование нового свойства внешними объектами. Для этого нужно использовать настройку External. В данном случае объект, который содержит данное поле, будет по- прежнему ссылаться на локальное закрытое поле (а не на свойство). Установка опции Up­date Reference в значение АН приведет к тому, что и внешние, и внутренние вызовы будут использоьать свойство.

При применении инкапсуляции инструмент рефакторинга изменяет ваше внутреннее поле на закрытое (если оно еще не закрыто), а затем генерирует свойство. Свойство содержит методы доступа get и set для поля. Если поле было объявлено как "только для чтения", то инкапсуляция генерирует только метод доступа get.

 Описание: image214

Давайте посмотрим код. Предположим, что у вас есть следующее объявление поля:

private int _rating;

Вы хотите инкапсулировать это закрытое поле в открытое свойство. На рис. 9.22 показаны опции инкапсуляции. При этом генерируется такой код:

private int _rating; public int Rating {

get { return _rating; } set { _rating = value; }

}

Кроме того, если вы выберете в диалоговом окне Encapsulate Field значение All для опции обновления ссылок, то ваши внутренние вызовы данного поля (оно было закрытым) будут обновлены для того* чтобы внутри использовалось свойство.

Подробнее в этой категории: « Рефакторинг кода Резюме »
Резюме
Рефакторинг кода
Рефакторинг для разработчика на VB
Рефакторинг для разработчиков баз данных
Запуск инструментов рефакторинга

Добавить комментарий


Защитный код
Обновить

© 2017 www.visualstudios.ru. Все права защищены.