Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Принципы SOLID.pptx
Скачиваний:
7
Добавлен:
22.03.2023
Размер:
1.32 Mб
Скачать

Объектно- ориентированное программирование систем защиты информации

Принципы дизайна

Принципы SOLID

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

2/44

Цель принципов — создать

программные структуры среднего

уровня, которые:

терпимы к изменениям;

просты и понятны;

образуют основу для компонентов,

 

которые могут использоваться во

 

многих программных системах.

Москва, весна 2021 г. Объектно-ориентированное программирование систем защиты информации | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

Принципы SOLID

SRP

Single Responsibility Principle

Принцип единственной

 

ответственности

OCP

• Open-Closed Principle

открытости/закрытостиПринцип

LSP

Liskov Substitution Principle

Принцип подстановки

 

Барбары Лисков

3/44

ISP

Interface Segregation Principle

Принцип разделения

 

интерфейсов

 

Dependency Inversion Principle

DIP

Принцип инверсии

 

зависимости

Москва, весна 2021 г. Объектно-ориентированное программирование систем защиты информации | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

Принципы

дизайна

SRP - Принцип единственной ответственности

5/44

SRP – определение и пример нарушения

Пример нарушения

Определения

Модуль должен иметь одну и только одну причину для изменения.

Альтернативное определение:

Актор – группа, состоящая из одного или нескольких лиц, желающих изменения системы.

Модуль должен отвечать за одного и только за одного актора

Москва, весна 2021 г. Объектно-ориентированное программирование систем защиты информации | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

6/44

SRP – примеры решения

Решение 1

Решение 2

Москва, весна 2021 г. Объектно-ориентированное программирование систем защиты информации | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

Принципы

дизайна

OCP – Принцип открытости/закрытости

8/44

OCP – определение и пример нарушения

Пример нарушения

Использование if/else или switch для выбора унаследованного клааса

Определения

Программные сущности должны быть открыты для расширения и закрыты для изменения

Москва, весна 2021 г. Объектно-ориентированное программирование систем защиты информации | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

9/44

SRP – примеры решения

Решение 1

Москва, весна 2021 г. Объектно-ориентированное программирование систем защиты информации | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

Принципы

дизайна

LSP – Принцип подстановки Барбары Лисков

11/

44

LSP – определение и пример нарушения

Пример нарушения

Определения

 

Необходимо, чтобы подклассы могли

 

бы служить заменой для своих

 

суперклассов

Москва, весна 2021 г. Объектно-ориентированное программирование систем защиты информации | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

12/

44

LSP – примеры решения

Решение 1

Решение 2

Не использовать наследование

Выделить общую часть в новый

 

базовый класс и унаследовать от него

 

Rect и Square

Москва, весна 2021 г. Объектно-ориентированное программирование систем защиты информации | Кафедра «Информационная безопасность» | © Московский технический университет связи и информатики

Соседние файлы в папке Лекции