Какова лучшая реализация:
Первый:
class Ball extends View {
private Animation fallAnimation;
public void fall() {
fallAnimation = AnimationUtils.loadAnimation(getContext(), R.anim.fall);
startAnimation(fallAnimation);
}
}
Второй:
class Ball extends View {
private Animation fallAnimation;
public void fall() {
fallAnimation = BallLoader.loadFall();
startAnimation(fallAnimation);
}
}
class BallLoader {
private static Animation fallAnimation;
public static Animation loadFall() {
if (fallAnimation == null) {
fallAnimation = AnimationUtils.loadAnimation(getContext(),
R.anim.fall);
}
return fallAnimation;
}
}
Расширение второго загрузчика:
class BallLoader {
private static Animation fallAnimation;
private static Animation moveAnimation;
private static Animation jumpAnimation;
public static Animation loadFall() {
if (fallAnimation == null) {
fallAnimation = AnimationUtils.loadAnimation(getContext(),
R.anim.fall);
}
return fallAnimation;
}
//not optimized, just for example
public static Animation loadMove() {
if (moveAnimation == null) {
moveAnimation = AnimationUtils.loadAnimation(getContext(),
R.anim.move);
}
return moveAnimation;
}
//not optimized, just for example
public static Animation loadJump() {
if (jumpAnimation == null) {
jumpAnimation = AnimationUtils.loadAnimation(getContext(),
R.anim.jump);
}
return jumpAnimation;
}
}
Использование этого:
Ball ball1 = new Ball();
Ball ball2 = new Ball();
Ball ball3 = new Ball();
Ball ball4 = new Ball();
Ball ball5 = new Ball();
Ball ball6 = new Ball();
Ball ball7 = new Ball();
Ball ball8 = new Ball();
Ball ball9 = new Ball();
ball1.fall();
ball2.fall();
ball3.fall();
ball4.fall();
ball5.fall();
ball6.fall();
ball7.fall();
ball8.fall();
ball9.fall();
Я думаю, что первое более ясно и не так запутано.Но будут ли проблемы с производительностью?Android загружает эту анимацию каждый раз, или, может быть, она кешируется платформой Android? ...
Второй более запутанный, и оригинальный класс очень большой, и, возможно, другие программисты будут с этим путаться ... Я не знаю,скажите пожалуйста, какая реализация лучше?