بوی کد 290 – امتناع کرد

وقتی میراث خود را نادیده می گیرید ، با والدین خود مشکل خواهید داشت

TL ؛ DR: زیر کلاس ها باید به تمام قرارداد والدین خود احترام بگذارند.

مشکلات

راه حل ها

  1. از ترکیب بیش از وراثت استفاده کنید
  2. برای استفاده مجدد از کد زیر طبقه بندی نکنید
  3. تجدیدنظر در سلسله مراتب
  4. منطق مشترک را استخراج کنید
  5. از رابط ها استفاده کنید
  6. کد مرده را حذف کنید

refactorings ⚙

refactoring 007 – کلاس عصاره

متن

هنگامی که یک زیر کلاس ایجاد می کنید ، باید از رفتار والدین خود استفاده یا گسترش دهد.

اگر بیشتر آن را نادیده گرفته یا نادیده بگیرد ، احتمالاً میراث را مجبور می کنید که متعلق به کد مجدد باشد.

این باعث می شود کد گمراه کننده و نگهداری آن سخت باشد.

کد نمونه

اشتباه

class House {
  constructor(address) {
    this.address = address;
  }
  address() {
    return this.address;
  }
  openDoor() {
    console.log("Door opened at " + this.address);
  }
}

class Motorhome extends House {
  constructor() {
    super(null);
  }
  address() {
    return null;
    // This implementation is the same as the parent's
    // and is also a refused bequest
  }
  openDoor() {
    console.log("Motorhome door opened.");
  }
}

درست

class House {
  constructor(address) {
    this.address = address;
  }
  address() {
    return this.address;
  }
  openDoor() {
    console.log("Door opened at " + this.address);
 ...

Source link