У меня есть адаптер - класс Radius, который, насколько я понимаю, является зависимостью, и я не совсем уверен, стоит ли оставлять его как есть, но тогда непонятно передавать его в качестве аргумента следующемучастный метод ИЛИ может быть есть способ справиться с этим, который является более сложным?Я знаю, что этот вопрос не очень ясен, но суть в том, что иметь класс зависимостей, передаваемый из одного закрытого метода в другой, - плохая практика или нет?
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);
}