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('гав');
};

dog.speak(); // гав

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-да нативті миксиндерді қолдау жоқ (интерфейстер немесе композиция пайдаланылады).

JavaScript және TypeScript-те кең таралған, бірақ… - sobes.tech