大規模なコード ベースでは、単一責任、高結合度、低結合、疎結合の原則に従って、関数のモジュール化と再利用が重要です。モジュール化戦略には、関数抽出、パラメーター化された関数、および高次関数が含まれます。再利用戦略には、形状タイプに従って面積を計算するユニバーサル関数 calcArea() が含まれており、コードの重複を減らすために Shape インターフェイスと Circle/Rectangle クラスを通じてポリモーフィズムを実装します。
大規模なコード ベースでの関数のモジュール化と再利用は重要です。モジュール機能によりメンテナンスが容易になり、コードの可読性と再利用性が向上し、開発効率とコードの品質が向上します。
元のコード:
// 计算圆的面积 public double calcCircleArea(double radius) { return Math.PI * radius * radius; } // 计算矩形的面积 public double calcRectangleArea(double width, double height) { return width * height; }
モジュール化されたコード:
// 定义一个计算面积的通用函数 public double calcArea(Shape shape) { return switch (shape.getType()) { case CIRCLE -> Math.PI * shape.getRadius() * shape.getRadius(); case RECTANGLE -> shape.getWidth() * shape.getHeight(); default -> throw new IllegalArgumentException("Unknown shape type"); }; } // Shape 接口定义了形状类型的常量 public interface Shape { enum Type { CIRCLE, RECTANGLE } Type getType(); double getRadius(); double getWidth(); double getHeight(); } // Circle 和 Rectangle 类实现 Shape 接口 public class Circle implements Shape { private double radius; public Circle(double radius) { this.radius = radius; } @Override public Type getType() { return Type.CIRCLE; } @Override public double getRadius() { return radius; } } public class Rectangle implements Shape { private double width; private double height; public Rectangle(double width, double height) { this.width = width; this.height = height; } @Override public Type getType() { return Type.RECTANGLE; } @Override public double getWidth() { return width; } @Override public double getHeight() { return height; } }
Throughモジュール化により、コードの責任が明確になり、再利用可能になります。一般関数 calcArea()
同様の計算ロジックを繰り返すことなく、渡された形状タイプに基づいて面積を計算します。
以上が大規模なコードベースで関数をモジュール化して再利用するためのベスト プラクティスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。