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;
  }
}

ეს მიდგომა ასახავს რეალურ იერარქიას და თავიდან ავიცილებთ კლასებს შორის არასწორ კავშირებს.