Рубрики
ООП принцип "Инкапсуляция"

ООП принцип Инкапсуляция «Понятие»

  • Скрытие структуры объекта от внешнего воздействия
  • Объект состоит из полей и методов, которые изменяют состояние самого объекта.
  • понятие очень тесно пересекается с таким понятием как сокрытие.

    Инкапсуляция это очень простое понятие, которое зачастую любят усложнять.

    Его суть заключается в том, сам класс является своего рода капсулой, которое содержит в себе

    • содержит в себе свойства
    • содержит методы, для работы с этими свойствами

    т.е. капсула позволяет объединить.

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

    Рубрики
    5. Dependency inversion principle SOLID

    SOLID «EXAMPLE» Музыкальное приложение

    5. Dependency inversion principle
    Принцип инверсии зависимости

    создаем объект — экземпляр класса яндекс музыка API работаем с этим экземплярам в разных местах приложения — вызываем метод

    создаем Yandex класс
    музыку мы будем получать из яндекс музыки
    class YandexMusicApi {
     get(){}
    }
    const MusicApp = () ={
      const API = new YandexMusicApi()
      API.get()
    }
    Рубрики
    5. Dependency inversion principle SOLID

    Dependency inversion principle «Понятие»

    5. Dependency inversion principle
    Принцип инверсии зависимости

    • модули высокого уровня должны зависеть от модулей более низкого уровня
    • все они должны зависеть от абстракции
    • абстракции не должны зависеть от деталей
    • детали должны зависеть от абстракций
    Рубрики
    4. Interface segregation principle SOLID

    SOLID «EXAMPLE» класс клиент-сервер

    4. Interface segregation principle
    Принцип разделения интерфейса

    СервисСайт рендериг приложение с клиентом и сервером

    const client = () => { }
    const server = () => { }
    Рубрики
    4. Interface segregation principle SOLID

    Interface segregation principle «Понятие»

    4. Interface segregation principle
    Принцип разделения интерфейса

    программные сущности не должны зависеть от методов, которые они не используют

    • тесно связан с первым принципом (ответственность)
    • тесно связан с третьим принципом (подстановка)

    разбивать толстые интерфейсы (программные сущности)

    • интерфейсы маленькие (узко-специализированные)
    • интерфейсы решают одну задачу

    Положительность в принципе

    • избавляем программные сущности от методов, которые они не используют
    • получаем более предсказуемую работу
    • код становится менее связанным в модулях и легче поддерживается