Tips

今日の開発Tips(2025-06-15)

複雑な条件分岐を改善するために、ポリモーフィズムを活用しましょう。多くの`if-else if-else` 構文は、ポリモーフィズムを用いることで、より読みやすく、保守しやすいコードに書き換えることができます。 これにより、コードの可読性が向上し、バグの発生リスクを低減できます。

ポリモーフィズムによる条件分岐の改善

多くの条件分岐は、オブジェクトの型や状態によって異なる処理を行う場合が多いです。このような状況では、ポリモーフィズムを活用することで、条件分岐を減らし、コードの可読性を向上させることができます。 具体的には、各条件に対応するクラスやメソッドを定義し、オブジェクトの型や状態に基づいて適切なメソッドを呼び出すようにします。

// ポリモーフィズムを利用しない例
function calculateArea(shape) {
  if (shape.type === "circle") {
    return Math.PI * shape.radius * shape.radius;
  } else if (shape.type === "rectangle") {
    return shape.width * shape.height;
  } else {
    return 0; // 処理できない場合のエラー処理
  }
}

// ポリモーフィズムを利用する例
class Shape {
  calculateArea() {
    throw new Error("calculateArea method must be implemented");
  }
}

class Circle extends Shape {
  constructor(radius) {
    super();
    this.radius = radius;
  }
  calculateArea() {
    return Math.PI * this.radius * this.radius;
  }
}

class Rectangle extends Shape {
  constructor(width, height) {
    super();
    this.width = width;
    this.height = height;
  }
  calculateArea() {
    return this.width * this.height;
  }
}

const circle = new Circle(5);
const rectangle = new Rectangle(4, 6);

console.log(circle.calculateArea()); // 78.53981633974483
console.log(rectangle.calculateArea()); // 24

注意点:

  • すべての条件分岐をポリモーフィズムで置き換える必要はありません。適切なケースを選択することが重要です。
  • クラス設計を慎重に行う必要があります。複雑なクラス設計は、可読性を低下させる可能性があります。

おすすめポイント:

  • コードの可読性と保守性が向上します。
  • バグの発生リスクを低減できます。
  • コードの拡張性が向上します。新しい形状を追加する際、既存のコードを変更する必要がありません。