Classes are Useful

Класи корисні

Дуже часто зустрічається така структура:

function foo() {
    let someProperty;

    // інший код ініціалізації

    function someMethod() {
        // робота з властивостями `someProperty`
        // та інакший код
    }
    // можливо інші методи

    return {
        someMethod,
        // можливо інші методи
    };
}

Це відомо як шаблон розкриваючого модуля (revealing module pattern) і досить поширений у JavaScript (використовує переваги замикання JavaScript).

якщо ви використовуєте file modules (що ви дійсно повинні робити, оскільки глобальний скоп - це погано) тоді your file is effectively the same (ваш файл фактично той самий). Однак є занадто багато випадків, коли люди пишуть такий код:

let someProperty;

function foo() {
   
    // інший код ініціалізації
}
foo(); // код ініціалізації

someProperty = 123; // ще код ініціалізації

// Деякі службові функції не експортовано

// після
export function someMethod() {

}

Незважаючи на те, що я не є великим шанувальником успадкування я вважаю, що дозвіл використовувати класи допомагає краще організувати свій код. Той же розробник інтуїтивно написав би наступне:

class Foo {
    public someProperty;

    constructor() {
        // ініціалізація
    }

    public someMethod() {
        // код
    }

    private someUtility() {
        // код
    }
}

export = new Foo();

І це не лише розробники, створення інструментів для розробників, які забезпечують чудову візуалізацію класів, є набагато поширенішим, і вашій команді потрібно розуміти та підтримувати на один шаблон менше.

PS: На мій погляд, немає нічого поганого в неглибоких ієрархіях класів, якщо вони забезпечують значне повторне використання та зменшення обсягу.

Last updated