Вы находитесь на странице: 1из 29

Урок 6: Основные понятия ООП

• Классы и объекты
• Абстракция
• Инкапсуляция
• Наследование
• Полиморфизм
• Абстрактный класс
• Абстрактный метод
• Виртуальный метод
• Паттерн «Шаблонный метод»
• Паттерн «Фабричный метод»
• Паттерн «Одиночка»
ООП
• Классы
• Объекты
Объект
• Сущность в виртуальном пространстве
• Состояние
• Поведение
Объект и класс

Объект == Экземпляр класса


Класс
• Тип данных
• Поля
• Методы
Подумайте

о том,
какие классы бы вы создали
Диаграмма классов
Отношение наследование

«is a»

Ёж «является» Монстром
Отношение вложенности

«part of»

Монстр «является частью» Мира


Отношение использования

«use»

Игровой движок «использует» генератор


случайных чисел
ООП
• Абстракция
• Инкапсуляция
• Наследование
• Полиморфизм
Абстракция
• Концептуальные границы
• Уровни абстракции
Интерфейс

Правило перехода границ


Инкапсуляция
• Сокрытие сложности
• Данных
• Логики
Абстрактный класс

Экземпляр создать нельзя


Наследование
Новый класс > Существующий

Заимствование
– свойств
– Функциональности
Уровни доступа
• public
• protected
• private
Абстрактный метод

Должен быть определен в наследнике


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

Может быть переопределен в наследнике


Полиморфизм
• Одинаковая спецификация
• Различная реализация
private / protected
• private members
• protected methods
Паттерн «Шаблонный метод»
• Основа алгоритма
• Переопределение некоторых шагов
алгоритма
Паттерн «Шаблонный метод»

OnRun – операция-зацепка
Диаграмма классов
Диаграмма классов
Паттерн «Фабричный метод»
• Интерфейс создания объекта
• Делегирование создание конкретных
экземпляров подклассам
Паттерн «Фабричный метод»
class Document
{

protected abstract File CreateFile();

}

class WordDocument : Document


{
protected override File CreateFile()
{
return new WordFile();
}
}
Паттерн «Одиночка»
class Singleton
{
private static Singleton mInstance;

public static Singleton GetInstance()


{
if (mInstance == null)
mInstance = new Singleton();

return mInstance;
}


}
Урок 6: Основные понятия ООП
• Классы и объекты
• Абстракция
• Инкапсуляция
• Наследование
• Полиморфизм
• Абстрактный класс
• Абстрактный метод
• Виртуальный метод
• Паттерн «Шаблонный метод»
• Паттерн «Фабричный метод»
• Паттерн «Одиночка»