Maison > Article > développement back-end > Meilleures pratiques pour la modularisation et la réutilisation de fonctions dans de grandes bases de code
Dans les grandes bases de code, la modularisation et la réutilisation des fonctions sont cruciales, et les principes de responsabilité unique, de cohésion élevée, de couplage faible et de couplage lâche sont suivis. Les stratégies de modularisation incluent l'extraction de fonctions, les fonctions paramétrées et les fonctions d'ordre supérieur. La stratégie de réutilisation inclut la fonction universelle calcArea(), qui calcule la zone en fonction du type de forme et implémente le polymorphisme via l'interface Shape et la classe Circle/Rectangle pour réduire la duplication de code.
Dans les grandes bases de code, la modularisation et la réutilisation des fonctions sont cruciales. Les fonctions modulaires facilitent la maintenance, améliorent la lisibilité et la réutilisabilité du code, améliorant ainsi l'efficacité du développement et la qualité du code.
Code original :
// 计算圆的面积 public double calcCircleArea(double radius) { return Math.PI * radius * radius; } // 计算矩形的面积 public double calcRectangleArea(double width, double height) { return width * height; }
Code modularisé :
// 定义一个计算面积的通用函数 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; } }
Grâce à la modularisation, les responsabilités du code sont claires et réutilisables. La fonction générale calcArea()
calcule la surface en fonction du type de forme transmis sans répéter une logique de calcul similaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!