Общеклассовые переменные в Android - PullRequest
3 голосов
/ 29 ноября 2011

Примечание: я не говорю о совместном использовании переменных между действиями или необходимости их постоянного сохранения.

Я разрабатываю приложение, использующее 3D-движок. Весь мой рендеринг происходит в одном классе рендерера. У меня есть несколько объектов (таких как камера, источник света, кадровый буфер), которые мне нужны в нескольких методах, и поэтому я объявил их как члены класса:

public class Renderer{
//..
private Camera camera = null;
private Light sun = null;
private Matrix someMatrix = new Matrix();

private void onSurfaceChanged(GL10 gl, int width, int height){
    //...
    sun = new Light(x,y,z,color);
    camera = new Camera(arg1, arg2);
}

public void onDrawFrame(GL10 arg0) {

    someMatrix = getRandomValues();
    //...

}

}   

Это "правильный" способ сделать это? Или мне лучше передать объекты через аргументы метода? Конечно, я мог бы объявить someMatrix также в onDrawFrame, но поскольку ресурсы на мобильных устройствах недостаточны, я бы не стал инициализировать их при каждом вызове onDrawFrame. Сейчас у меня проблема в том, что у меня действительно много переменных класса, которые я обычно считаю плохим стилем. Я не смог найти ничего об этой теме в руководстве по стилю для Android. Существуют ли альтернативы, которые улучшают читабельность и / или безопасность?

1 Ответ

1 голос
/ 30 ноября 2011

Это правильный способ сделать это, да.

Больше нечего добавить, на самом деле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...