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
— -
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' }
— -
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!");
— -
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!
— -
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.
— -
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.
— -
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
— -
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!