Rumah > hujung hadapan web > tutorial js > Corak Reka Bentuk yang penting untuk Pembangun JavaScript: Tingkatkan Penguasaan Pengekodan Anda

Corak Reka Bentuk yang penting untuk Pembangun JavaScript: Tingkatkan Penguasaan Pengekodan Anda

Mary-Kate Olsen
Lepaskan: 2025-01-13 12:06:43
asal
178 orang telah melayarinya

ssential Design Patterns for JavaScript Developers: Boost Your Coding Mastery

7 Corak Reka Bentuk Penting untuk Pembangun JavaScript: Tingkatkan Penguasaan Pengekodan Anda

Dalam dunia pembangunan perisian yang dinamik, memahami corak reka bentuk adalah penting untuk mencipta kod berskala, boleh diselenggara dan cekap. Sama ada anda sedang mengusahakan projek kecil atau mengarkib aplikasi yang kompleks, corak reka bentuk menyediakan penyelesaian yang diuji masa kepada cabaran biasa. Siaran ini menyelidiki tujuh corak reka bentuk utama yang perlu diketahui oleh setiap pembangun JavaScript, dengan contoh praktikal untuk meningkatkan kepakaran pengekodan anda.

— -

1. Corak Singleton: Memastikan Contoh Tunggal

Corak Singleton memastikan kelas hanya mempunyai satu tika sambil menyediakan pusat akses global. Ia sesuai untuk senario seperti mengurus objek konfigurasi tunggal atau keadaan terpusat.

class Singleton {
    constructor() {
        if (Singleton.instance) {
            return Singleton.instance;
        }
        Singleton.instance = this;
        this.data = {};
    }
    setData(key, value) {
        this.data[key] = value;
    }
    getData(key) {
        return this.data[key];
    }
}
// Example Usage
const instance1 = new Singleton();
instance1.setData("theme", "dark");
const instance2 = new Singleton();
console.log(instance2.getData("theme")); // Output: dark
Salin selepas log masuk

— -

2. Corak Kilang: Permudahkan Penciptaan Objek

Corak Kilang menyediakan cara untuk mencipta objek tanpa menyatakan kelas tepatnya. Corak ini tidak ternilai untuk membina aplikasi dengan pelbagai jenis objek.

class Car {
  constructor(model) {
    this.type = "Car";
    this.model = model;
  }
}

class Bike {
  constructor(model) {
    this.type = "Bike";
    this.model = model;
  }
}

class VehicleFactory {
  static createVehicle(type, model) {
    if (type === "car") return new Car(model);
    if (type === "bike") return new Bike(model);
    throw new Error("Unknown vehicle type");
  }
}

// Example Usage
const tesla = VehicleFactory.createVehicle("car", "Tesla");
console.log(tesla); // Output: Car { type: 'Car', model: 'Tesla' }
Salin selepas log masuk

— -

3. Corak Pemerhati: Bertindak balas terhadap Perubahan

Dalam Corak Pemerhati, berbilang objek (pemerhati) menonton satu subjek. Apabila keadaan subjek berubah, semua pemerhati dimaklumkan. Corak ini amat berguna dalam sistem dipacu peristiwa seperti GUI.

class Subject {
    constructor() {
        this.observers = [];
    }
    subscribe(observer) {
        this.observers.push(observer);
    }
    notify(data) {
        this.observers.forEach(observer => observer.update(data));
    }
}
class Observer {
    constructor(name) {
        this.name = name;
    }
    update(data) {
        console.log(`${this.name} received: ${data}`);
    }
}
// Example Usage
const newsChannel = new Subject();
const subscriber1 = new Observer("Alice");
const subscriber2 = new Observer("Bob");
newsChannel.subscribe(subscriber1);
newsChannel.subscribe(subscriber2);
newsChannel.notify("Breaking News!");
Salin selepas log masuk

— -

4. Corak Penghias: Meningkatkan Kefungsian

Corak Penghias membolehkan anda menambah gelagat secara dinamik pada objek tanpa mengubah strukturnya. Ini amat berguna untuk memanjangkan fungsi secara modular.

function withTimestamp(func) {
    return function(message) {
        func(`[${new Date().toISOString()}] ${message}`);
    };
}
// Example Usage
const log = console.log;
const logWithTimestamp = withTimestamp(log);
logWithTimestamp("Hello, World!"); // Output: [2024–12–14T12:00:00.000Z] Hello, World!
Salin selepas log masuk

— -

5. Corak Strategi: Penukaran Algoritma Dinamik

Corak Strategi mentakrifkan keluarga algoritma, merangkumnya dan menjadikannya boleh ditukar ganti. Ini sesuai untuk aplikasi yang memerlukan berbilang gelagat berdasarkan input atau konteks pengguna.

class PaymentStrategy {
    pay(amount) {
        throw new Error("pay() must be implemented.");
    }
}
class CreditCardPayment extends PaymentStrategy {
    pay(amount) {
        console.log(`Paid $${amount} with Credit Card.`);
    }
}
class PayPalPayment extends PaymentStrategy {
    pay(amount) {
        console.log(`Paid $${amount} with PayPal.`);
    }
}
// Example Usage
const paymentMethod = new PayPalPayment();
paymentMethod.pay(100); // Output: Paid 0 with PayPal.
Salin selepas log masuk

— -

6. Corak Prototaip: Pengklonan Objek Dipermudahkan

Corak ini membolehkan penciptaan objek dengan menyalin prototaip. Ia biasanya digunakan untuk gubahan objek dan mengelakkan instantiasi berulang.

const vehiclePrototype = {
    start() {
        console.log(`${this.model} is starting.`);
    },
};

function createVehicle(model) {
    const vehicle = Object.create(vehiclePrototype);
    vehicle.model = model;
    return vehicle;
}
// Example Usage
const car = createVehicle("Toyota");
car.start(); // Output: Toyota is starting.
Salin selepas log masuk

— -

7. Corak Perintah: Merangkumkan Permintaan

Corak Perintah merangkum permintaan sebagai objek, mendayakan penjadualan operasi yang fleksibel dan membuat asal kefungsian.

class Light {
    on() {
        console.log("Light is ON");
    }
    off() {
        console.log("Light is OFF");
    }
}
class LightOnCommand {
    constructor(light) {
        this.light = light;
    }
    execute() {
        this.light.on();
    }
}
// Example Usage
const light = new Light();
const lightOnCommand = new LightOnCommand(light);
lightOnCommand.execute(); // Output: Light is ON
Salin selepas log masuk

— -

Fikiran Akhir
Menguasai corak reka bentuk ini melengkapkan anda dengan alatan berkuasa untuk menulis kod yang lebih baik. Dengan memahami aplikasi praktikal mereka, anda boleh menangani cabaran dengan cekap dan membina perisian yang mantap. Corak reka bentuk yang manakah kegemaran anda? Kongsi pendapat anda dalam komen di bawah!

Atas ialah kandungan terperinci Corak Reka Bentuk yang penting untuk Pembangun JavaScript: Tingkatkan Penguasaan Pengekodan Anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan