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

Ниже приведены некоторые правила, которым мы можем следовать, чтобы убедиться, что наши классы написаны чистым способом:

  1. Держите его закрытым. Переменные экземпляра в классе должны быть закрытыми. Никогда не должно быть случая, когда нам нужно сделать членов класса общедоступными. Каждая операция над переменными-членами должна выполняться через функции-члены класса. Это помогает в достижении абстракции и инкапсуляции. Хотя это невозможно в JavaScript, мы можем следовать этому, не манипулируя переменными экземпляра класса извне.
  2. Классы должны быть небольшими. Первое правило при написании классов — убедитесь, что наши классы маленькие. Они должны делать что-то одно и делать это хорошо (т.е. следовать SRP). рассмотрим следующий класс: -
class Employee {
  constructor() {
    // intialise employee
  }

  getPersonalDetails() {
    // logic to get personal details
  }

  calculatePayroll() {
    // logic to calculate payroll
  }
}

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

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

4. Открыт для расширения, закрыт для модификации. Ваш класс должен быть открыт для расширения, но закрыт для модификации (т. е. должен следовать принципу Открыто-Закрыто). Теперь это звучит очень сложно сделать, но если вам удалось написать классы таким образом, то для добавления новых функций в ваш код требуется минимальное изменение. Подробнее о принципе Open Closed можно прочитать здесь.

5. Реализуйте абстракции. Ваши классы должны реализовывать какие-либо абстракции. Во многих языках программирования есть интерфейсы/абстрактные классы. Ваш класс должен реализовать эти интерфейсы/абстрактные классы. Преимущество этого заключается в том, что всякий раз, когда вы хотите изменить поведение реализованного класса, вы можете легко сделать это, просто следуя интерфейсу. Вам не нужно вносить изменения во многих местах, потому что вы определили входные и выходные данные класса. Теперь, когда JavaScript не предоставляет вам интерфейсы, вы можете сохранять комментарии или интеллект-карты, чтобы помнить, какому интерфейсу следует следовать. Итак, чтобы избежать этого, используйте TypeScript :)

Так что надеюсь, у вас есть представление о том, как лучше всего писать классы. Если у вас есть какие-либо предложения, не стесняйтесь добавлять их в комментариях ниже. Пожалуйста, хлопайте, если вам понравился материал. Следите за мной на моем канале YouTube, где я публикую много отличного контента.