Sobes.tech
Middle+

Ի՞նչ նախագծման նմուշներ են տարածված JavaScript և TypeScript-ում, որոնք Java-ում չեն հանդիպում։

sobes.tech AI

Պատասխան AI-ից

  • Singleton (JS/TS- ում ավելի հեշտ է իրականացնել մոդուլների և փակման միջոցով):
  • Module (լեզվի ենթադրյալ նմուշ):
  • Prototype (պրոտոտիպային ժառանգության միջոցով):
  • Mixin (Object.assign, դասեր կամ ֆաբրիկա ֆունկցիաներ):
  • Revealing Module Pattern (փակման օգտագործմամբ):
  • Factory Function (ընտրանք դասի կոնստրուկտորների համար):
  • Dependency Injection (ավելի հաճախ ֆաբրիկաների կամ կոնտեյներների միջոցով, ոչ այնքան կախված է նշանավորումներից, ինչպես Java-ում):

Տարբերությունների օրինակներ:

  • Singleton:
// singleton.js
const instance = {
  data: 'մեկ տվյալ'
};

export default instance; // Պարզ արտահանում միակ օրինակից

Java-ում անհրաժեշտ է ստատիկ getInstance() մեթոդ և մասնավոր կոնստրուկտոր:

  • Module:
// module.js
const privateVar = 'մասնավոր';

export function publicMethod() {
  console.log(privateVar);
}

Java-ում անհրաժեշտ է բացահայտ հայտարարել դասեր և մոդիֆիկատորներ:

  • Prototype:
const animal = {
  speak() {
    console.log('...');
  }
};

const dog = Object.create(animal);
dog.speak = function() {
  console.log('woof');
};

dog.speak(); // woof

Java-ում ժառանգությունը հիմնված է դասերի վրա:

  • Mixin:
const searchable = {
  search() {
    console.log('Որոնում...');
  }
};

class Article {
  constructor(title) {
    this.title = title;
  }
}

Object.assign(Article.prototype, searchable);

const myArticle = new Article('Բարև');
myArticle.search(); // Որոնում...

Java-ում բնատուր աջակցություն չկա միկսինների համար (օգտագործվում են ինտերֆեյսներ կամ կոմպոզիցիա):