PHP & MYSQL
1.34K subscribers
21 photos
1 video
36 files
23 links
Download Telegram
Forwarded from اتاق برنامه نویسی </> (PapiDon)
JS Design Patterns: A Comprehensive Guid [ Part 1 ]

این مطلب یک راهنمای جذاب در زمینه الگوهای طراحی در جاوا اسکریپت است که اهمیت بالایی در دنیای برنامه‌نویسی دارد. این الگوها، که راه‌حل‌های امتحان‌پس‌داده برای مشکلات متداول در برنامه‌نویسی هستند، به شما کمک می‌کنند تا کدهای خود را به شکلی منظم، قابل نگهداری و گسترش‌پذیر بنویسید. در اینجا به بررسی چند نمونه از این الگوها در جاوا اسکریپت پرداخته می‌شود

1️⃣ الگو Singleton Pattern:

این الگو اطمینان می‌دهد که یک کلاس تنها یک نمونه (instance) داشته باشد. مثلاً برای مدیریت پایگاه‌داده یا تنظیمات سیستمی در جاوا اسکریپت کاربرد دارد. کد نمونه زیر نشان‌دهنده این است که چگونه دو شیء از یک کلاس به یک نمونه اشاره می‌کنند:

   let instance;
class Database {
constructor(data) {
if (instance) {
return instance;
}
this.data = data;
instance = this;
}
getData() {
return this.data;
}
}
const db1 = new Database('db1');
const db2 = new Database('db2');
console.log(db1 === db2); // true


2️⃣ الگو Observer Pattern:

این الگو به شما اجازه می‌دهد تغییرات در یک شیء را رصد کنید و در صورت وقوع تغییرات، اطلاع‌رسانی کنید. این کد نشان می‌دهد چگونه می‌توانید اشیاء را به یک موضوع مشترک متصل کنید و در هنگام تغییر داده‌ها، اطلاع‌رسانی کنید:

   class Subject {
constructor() {
this.observers = [];
}
subscribe(observer) {
this.observers.push(observer);
}
unsubscribe(observer) {
this.observers = this.observers.filter(obs => obs !== observer);
}
notify(data) {
this.observers.forEach(observer => observer.update(data));
}
}
class Observer {
update(data) {
console.log(`Observer received data: ${data}`);
}
}
const subject = new Subject();
const observer1 = new Observer();
const observer2 = new Observer();
subject.subscribe(observer1);
subject.subscribe(observer2);
subject.notify('Hello World');


3️⃣ الگو Module Pattern:

این الگو به شما کمک می‌کند تا کد خود را به صورت ماژول‌های مستقل سازمان‌دهی کنید تا از تداخل متغیرها و توابع در فضای نام جلوگیری شود:

   const MyModule = (() => {
let privateVar = 'I am private';
return {
publicMethod: () => `The value of privateVar is: ${privateVar}`
};
})();
console.log(MyModule.publicMethod());





📁 #javascript #DesignPatterns

کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه‌نویسی
📌 @PapiDon_coding
2👍1