oop Flashcards

1
Q

Базовые принципы ООП

A
  • Абстракция — отделение концепции от ее экземпляра;
  • Полиморфизм — реализация задач одной и той же идеи разными способами;
  • Наследование — способность объекта или класса базироваться на другом объекте или классе. Это главный механизм для повторного использования кода. Наследственное отношение классов четко определяет их иерархию;
  • Инкапсуляция — размещение одного объекта или класса внутри другого для разграничения доступа к ним.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

DRY

A

Не повторяйся (Don’t repeat yourself — DRY).

Избегайте повторного написания кода, вынося в абстракции часто используемые задачи и данные. Каждая часть вашего кода или информации должна находиться в единственном числе в единственном доступном месте. Это один изпринципов читаемого кода.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Принцип единственной обязанности

A

Для каждого класса должно быть определено единственное назначение. Все ресурсы, необходимые для его осуществления, должны быть инкапсулированы в этот класс и подчинены только этой задаче.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Принципы SOLID

A
  1. Single responsibility Принцип единственной ответственности
    Один класс или функция делают что-то одно
  2. Open-closed Принцип открытости/закрытости
    Классы и функции должны быть открыты для расширения и закрыты для изменения
    По возможности лучше не изменять старый протестированный код
  3. Liskov substitution Принцип подстановки Лисков
    Функции и классы которые используют родительский тип должны также работать с дочерними
    Наследуемый класс должен дополнять а не замещать поведение родительского класса
  4. Interface segregation Принцип разделения интерфейса
    Программные сущности не должны зависеть от методов которые они реализуют
    Основная суть разбивать программные сущности на более маленькие решающие одну задачу
    Нельзя заставлять класс реализовывать методы которым он не пользуется
  5. Dependency Inversion Принцип инверсии зависимостей
    Модули высокого уровня не должны зависеть от модулей низкогоу уровня
    Модули высокого уровня должны зависеть от интерфейсов
    Интерфейсы не должны быть зависимы от модулей низкого уровня
How well did you know this?
1
Not at all
2
3
4
5
Perfectly