Refactoring 020 – تبدیل توابع استاتیک

استاتیک را بکشید، اشیاء را احیا کنید

TL;DR: توابع استاتیک را با فعل و انفعالات شی جایگزین کنید.

مشکلات پرداخته شده است

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-iv-7sc3w8n

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-iv-7sc3w8n

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-v-evj3zs9

مراحل

  1. روش های استاتیک مورد استفاده در کد خود را شناسایی کنید.
  2. روش های استاتیک را با روش های نمونه جایگزین کنید.
  3. وابستگی ها را به صراحت از طریق سازنده ها یا پارامترهای متد عبور دهید.
  4. Refactor کلاینت ها برای تعامل با اشیا به جای توابع استاتیک.

کد نمونه

قبل از

class CharacterUtils {
    static createOrpheus() {
        return { name: "Orpheus", role: "Musician" };
    }

    static createEurydice() {
        return { name: "Eurydice", role: "Wanderer" };
    }
    
    static lookBack(character) {
      if (character.name === "Orpheus") {
        return "Orpheus looks back and loses Eurydice.";
    } else if (character.name === "Eurydice") {
        return "Eurydice follows Orpheus in silence.";
    }
       return "Unknown character.";
  }
}

const orpheus = CharacterUtils.createOrpheus();
const eurydice = CharacterUtils.createEurydice();

بعد از

// 1. Identify static methods used in your code.
// 2. Replace static methods with...

Source link