Иногда необходимо соединить разные объекты
Например, источником данных структуры Х может быть объект А, а посетителем, получающим новую версию структуры X может быть объект B. В таком случае можно объединить объекты A и B в один общий SourceType, что упростит манипуляции над структурой X
Для таких случаев подходит класс SourceDynamic объединяющий
Пример 1.
import { SourceDynamic, Guest, Source } from "patron-oop";
let theValue = 1;
const sourceDynamic = new SourceDynamic(
new Guest((value) => {
theValue = value;
}),
new Source((guest) => {
give(theValue, guest);
})
);
sourceDynamic.give(42);
sourceDynamic.value((value) => {
document.querySelector(
".source-dynamic-result"
).textContent = `Результат = ${value}`;
});
Результат 1.