Nahradí viacnásobné dedenie párom objektov, ktoré sa navzájom držia.
class Teleso { posun(dx, dy) { throw new Error('abstraktná metóda'); }} class Widget { prekresli() { throw new Error('abstraktná metóda'); }} // Prvá polovica: patrí do sveta fyziky.class LoptaTeleso extends Teleso { constructor() { super(); this.dvojca = null; } posun(dx, dy) { this.x += dx; this.y += dy; this.dvojca.prekresli(); }} // Druhá polovica: patrí do sveta kreslenia.class LoptaWidget extends Widget { constructor() { super(); this.dvojca = null; } prekresli() { nakresliKruh(this.dvojca.x, this.dvojca.y); }} const teleso = new LoptaTeleso();const widget = new LoptaWidget(); teleso.dvojca = widget;widget.dvojca = teleso;