Sobes.tech
Senior

Ներկայացրեք ճիշտ ժառանգության մոդել Button և Input դասերի համար ներկայիս փոխարեն, որտեղ Input-ը ընդլայնում է Button-ը։

sobes.tech AI

Պատասխան AI-ից

Button-դից Input ժառանգությունը տրամաբանական չէ, քանի որ Input և Button տարբեր տարրեր են՝ տարբեր սիմանթիկայով և վարքով:

Անհրաժեշտ է սահմանել ընդհանուր հիմնական դաս, օրինակ՝ UIControl կամ FormElement, որը պարունակում է բոլոր ձևանմուշի տարրերի ընդհանուր հատկություններն ու մեթոդները: Այնուհետև, Button և Input ժառանգում են այդ դասից որպես առանձին դասեր:

TypeScript օրինակ՝

class UIControl {
  constructor(public id: string) {}
  render() {
    // ընդհանուր ռենդեր մեթոդ
  }
}

class Button extends UIControl {
  click() {
    // սեղմման լոգիկա
  }
}

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

Այս մոտեցումը արտացոլում է իրական հիերարխիան և խուսափում է սխալ կապերից դասերի միջև։