참고 : 활동간에 변수를 공유하거나 영구적으로 저장해야하는 필요성에 관해서는 이야기하지 않습니다.Android의 클래스 전체 변수
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이 호출 될 때마다 초기화하지 않도록합니다. 지금 가지고있는 문제는 클래스 변수가 많아서 일반적으로 나쁜 스타일이라고 생각합니다. 안드로이드 스타일 가이드 라인에서이 주제에 관해서 아무 것도 찾을 수 없었습니다. 가독성 및/또는 안전성을 향상시키는 대안이 있습니까?
귀하의 목록에서, 귀하는 이들을 전세계에 선언 한 것이 아니라 클래스의 회원으로 간주합니까? – Guy
이것은 실제로 내가 "세계적으로"이해하는 것입니다. 그들은 반원들과 똑같지 않습니까? – Lennart
필자는 필드가 'private'인데 반해 'public'클래스 멤버 만 어디서나 액세스 할 수 있다는 점이 차이라고 생각합니다. – Craigy