Инкапсуляция
Понятие инкапсуляции:
Виды модификаторов уровня доступа:
Принципы эффективной инкапсуляции:
Абстракция - это процесс упрощения сложной задачи.
Примеры абстракции:
Сокрытие реализации защищает программу от внешних воздействий.
Слабосвязанный код – это код, не зависящий от реализации других компонентов.
Распределение ответственности:
Задание 1 вариант
Задание 2 вариант
49.86K

Инкапсуляция

1. Инкапсуляция

ИНКАПСУЛЯЦИЯ

2. Понятие инкапсуляции:

■ Инкапсуляция – это скрытие реализации
объекта от конечного пользователя, которое
в С## осуществляется при помощи
модификаторов доступа (private, public…).
Конечным пользователем объекта здесь
выступает либо объект наследник, либо
программист.

3. Виды модификаторов уровня доступа:

- public – доступ к члену возможен из любого места одной
сборки, либо из другой сборки, на которую есть ссылка;
- protected – доступ к члену возможен только внутри
класса, либо в классе-наследнике (при наследовании);
- internal – доступ к члену возможен только из сборки, в
которой он объявлен;
- private – доступ к члену возможен только внутри класса;
- protected internal - доступ к члену возможен из одной
сборки, либо из класса-наследника другой сборки.

4. Принципы эффективной инкапсуляции:

■ Использование абстракции;
■ Сокрытие реализации;
■ Разделение ответственности.
Эффективная инкапсуляция = абстракция +
сокрытие реализации + ответственность.

5. Абстракция - это процесс упрощения сложной задачи.

У абстракции есть два преимущества:
■ Абстракция упрощает решение задачи;
■ Благодаря абстракции компоненты
программного обеспечения можно
использовать повторно.

6. Примеры абстракции:

■ очередь людей к кассиру в банке. Когда кассир освобождается,
первый в очереди клиент подходит к его окошку. И таким образом
они один за другим продвигаются к окошку кассира. Очередь
продвигается согласно алгоритму "первым пришел - первым
обслужен".
■ конвейер с гамбургерами в закусочной. Когда новый гамбургер
попадает на конвейер, он занимает место рядом с последним в
ряду гамбургером. Поэтому гамбургер, который снимают с
конвейера, пролежал там дольше остальных. Можно сказать, что
рестораны работают по алгоритму "первым пришел - первым
обслужен".

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

Сокрытие реализации дает два преимущества:
■ защищает объекты от пользователей;
■ защищает пользователей от объектов.
Сокрытие реализации способствует созданию
слабосвязанного кода.

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

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

9. Распределение ответственности:

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

10. Задание 1 вариант

Описать класс «Автомобиль», в котором хранится
информация о возрасте и имени автомобиля.
Написать метод, который запускает двигатель,
останавливает его. Описать заданные свойства.
Изменить имя на новое.

11. Задание 2 вариант

Описать класс «Автомобиль», в котором хранится
информация о цвете и имени автомобиля.
Написать метод, который поворачивает автомобиль
налево и направо (учтите, что автомобиль может
ехать только если запущен двигатель). Описать
заданные свойства.
English     Русский Правила