将依赖项从一个私有方法传递到另一个私有方法是否是一种依赖项注入的不良做法



我有一个适配器 - 半径类 - 据我了解这是一个依赖项,我不确定是否保持原样,但将其作为参数传递给下一个私有方法令人困惑,或者可能有一种方法来处理它更复杂的方法?我知道这个问题不是很清楚,但重点是将依赖项类从一个私有方法传递到另一个私有方法是否是一种不好的做法?

public void drawClock(Canvas canvas, float clockHandRotationAngles[], Radius radius, ArrayList<ClockElement> clockElements, ArrayList<Paint> clockHandPaintList, ClockHandDrawingType clockHandDrawingType) {
    canvas.drawArc(rect, STARTING_ANGLE_FOR_CIRCLE_DRAWING, DEGREES_IN_CIRCLE, true, circlePaint);
    for (int i = 0; i < clockHandRotationAngles.length; i++) {
        drawClockHand(canvas, clockHandRotationAngles[i], radius.getRadiusOfSpinning(clockElements.get(i)), clockHandPaintList.get(i), clockHandDrawingType);
    }
}
private void drawClockHand(Canvas canvas, float clockHandRotationAngle, int clockHandLength, Paint clockHandPaint, ClockHandDrawingType clockHandDrawingType) {
    switch (clockHandDrawingType) {
        case ARC:
            drawArc(canvas, clockHandRotationAngle, clockHandLength, clockHandPaint);
            break;
        case LINE:
            drawLine(canvas, clockHandRotationAngle, clockHandLength, clockHandPaint);
            break;
    }
}
private void drawArc(Canvas canvas, float angle, int radius, Paint paint) {
    setAppropriateRectForInnerCircle(canvasCenter, radius);
    canvas.drawArc(innerRect, STARTING_ANGLE_FOR_CIRCLE_DRAWING, angle, true, paint);
}
private void drawLine(Canvas canvas, float angle, int length, Paint paint) {
    canvas.drawLine(canvasCenter.getX(), canvasCenter.getY(),
            calculateCoordinateOfRotation(Coordinate.X, angle, length),
            calculateCoordinateOfRotation(Coordinate.Y, angle, length), paint);
}

通常在通过构造函数实例化类时注入依赖关系。无需为每个私有方法或类中的任何方法传递它。将对依赖类实例的引用保留为字段。

Class A{
 B b;
 A(B bb){
 this.b=bb
 }
 private void someMethod(){
 //use b if required
 }
}

其中 B 是某个 A 类所依赖的。

最新更新