وقتی میراث خود را نادیده می گیرید ، با والدین خود مشکل خواهید داشت
TL ؛ DR: زیر کلاس ها باید به تمام قرارداد والدین خود احترام بگذارند.
مشکلات
راه حل ها
- از ترکیب بیش از وراثت استفاده کنید
- برای استفاده مجدد از کد زیر طبقه بندی نکنید
- تجدیدنظر در سلسله مراتب
- منطق مشترک را استخراج کنید
- از رابط ها استفاده کنید
- کد مرده را حذف کنید
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);
...