Sobes.tech
Middle+

Kādi dizaina modeļi ir izplatīti JavaScript un TypeScript, bet nav Java?

sobes.tech AI

Atbilde no AI

  • Singleton (JS/TS ir modulēs viegli īstenojams, izmantojot moduļus un slēdzenes).
  • Module (valodas implicitais paraugs).
  • Prototype (caur prototipisko mantošanu).
  • Mixin (caur Object.assign, klasēm vai fabrikas funkcijām).
  • Revealing Module Pattern (ar slēdzenēm).
  • Factory Function (alternatīva klases konstruktoriem).
  • Dependency Injection (biežāk caur fabrikām vai konteineriem, ne tik ļoti atkarīgs no anotācijām kā Java).

Daži piemēri atšķirībām:

  • Singleton:
// singleton.js
const instance = {
  data: 'kāds datums'
};

export default instance; // Vienkāršs viena eksemplāra eksportēšana

Java nepieciešams statiskais metodes getInstance() un privāts konstruktoris.

  • Module:
// module.js
const privateVar = 'privāts';

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

Java nepieciešama skaidra klases un piekļuves modifikatoru deklarācija.

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

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

dog.speak(); // woof

Java mantošana balstās uz klasēm.

  • Mixin:
const searchable = {
  search() {
    console.log('Meklēšana...');
  }
};

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

Object.assign(Article.prototype, searchable);

const myArticle = new Article('Sveiki');
myArticle.search(); // Meklēšana...

Java nav iebūvēta atbalsta miksiem (izmanto interfeisus vai kompozīciju).