Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Построение цепочки вызовов конструкторов с использованием this.

Инкапсуляция с использованием свойств .NET | Свойства, доступные только для чтения и только для записи | Статические свойства | Статические конструкторы | SetFullName (fullName); | Ключевое слово sealed | Ключевые слова virtual и override | Абстрактные классы | Полиморфный интерфейс | Сокрытие методов |


Читайте также:
  1. I.Предварительное построение процесса расширения пара.
  2. III. Работа над построением словосочетаний и предложений.
  3. Анализ провозной способности с использованием индексного приема сравнения
  4. Банк России. Цели и организационное построение.
  5. В) Построение прогнозирующей функции, описываемой уравнением гиперболы
  6. Вопрос 19. Контроль за использованием и охраной земель.
  7. Вторая позиционная задача (построение линии пересечения плоскостей общего положения)

Другое применение ключевого слова this состоит в проектировании класса, использующего технику под названием сцепление конструкторов или цепочка конструкторов (constructor chaining). Этот шаблон проектирования полезен, когда имеется класс, определяющий несколько конструкторов. Учитывая тот факт, что конструкторы часто проверяют входящие аргументы на соблюдение различных бизнес-правил, возникает необходимость в избыточной логике проверки достоверности внутри множества конструкторов.

 

3. Модификаторы доступа С#

При работе с инкапсуляцией всегда следует принимать во внимание то, какие аспекты типа видимы различным частям приложения. В частности, типы (классы, интерфейсы, структуры, перечисления и делегаты), а также их члены (свойства, методы, конструкторы и поля) определяются с использованием определенного ключевого слова, управляющего "видимостью" элемента другим частям приложения.

Хотя в С# определены многочисленные ключевые слова для управления доступом, их значение может отличаться в зависимости от места применения (к типу или члену). В табл. 1 описаны роли и применение модификаторов доступа.

Таблица 1

Модификатор доступа К чему может быть применен Назначение
public Типы или члены типов Не имеют ограничений доступа. Общедоступный член может быть доступен как из объекта, так и из любого производного класса. Общедоступный тип может быть доступен из других внешних сборок.
private Члены типов или вложенные типы Приватные (private) элементы могут быть доступны только в классе (или структуре), в котором они определены.
protected Члены типов или вложенные типы   Защищенные (protected) элементы могут использоваться классом, который определил их, и любым дочерним классом. Однако защищенные элементы не доступны внешнему миру через операцию точки (.)
internal Типы или члены типов   Внутренние (internal) элементы доступны только в пределах текущей сборки. Таким образом, если в библиотеке классов.NET определен набор внутренних типов, то другие сборки не смогут ими пользоваться.
protected internal Члены типов или вложенные типы   Когда ключевые слова protected и internal комбинируются в объявлении элемента, такой элемент доступен внутри определяющей его сборки, определяющего класса и всех его наследников.

 

По умолчанию члены типов являются неявно приватными (private) и неявно внутренними (internal).

 

4. Средства инкапсуляции С#

Концепция инкапсуляции вращается вокруг принципа, гласящего, что внутренние данные объекта не должны быть напрямую доступны через экземпляр объекта.

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

В идеале данные состояния объекта должны быть специфицированы с использованием ключевого слова private (или, возможно, protected). Таким образом, внешний мир должен вежливо попросить, если захочет изменить или получить лежащее в основе значение. Это хороший принцип, поскольку общедоступные элементы данных можно легко повредить (даже нечаянно, а не преднамеренно).


Дата добавления: 2015-07-25; просмотров: 149 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Пример 1.| Инкапсуляция с использованием традиционных методов доступа и изменения

mybiblioteka.su - 2015-2024 год. (0.006 сек.)