Sobes.tech
Senior

Pakkuge õige pärimismudeli Button ja Input klassidele selle asemel, kus Input laiendab Buttoni.

sobes.tech AI

Vastus AI-lt

Buttonist Input pärimine ei ole loogiline, kuna Input ja Button on erinevad elemendid erineva semantika ja käitumisega.

Õigem oleks defineerida ühine baasklass, näiteks UIControl või FormElement, mis sisaldab kõigi vormielementide ühiseid omadusi ja meetodeid. Seejärel pärivad Button ja Input sellest kui eraldi klassid.

TypeScript näide:

class UIControl {
  constructor(public id: string) {}
  render() {
    // ühine render meetod
  }
}

class Button extends UIControl {
  click() {
    // klõpsamise loogika
  }
}

class Input extends UIControl {
  value: string = '';
  setValue(val: string) {
    this.value = val;
  }
}

See lähenemine peegeldab tegelikku hierarhiat ja aitab vältida valesid seoseid klasside vahel.