2011-11-29 3 views
3

참고 : 활동간에 변수를 공유하거나 영구적으로 저장해야하는 필요성에 관해서는 이야기하지 않습니다.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이 호출 될 때마다 초기화하지 않도록합니다. 지금 가지고있는 문제는 클래스 변수가 많아서 일반적으로 나쁜 스타일이라고 생각합니다. 안드로이드 스타일 가이드 라인에서이 주제에 관해서 아무 것도 찾을 수 없었습니다. 가독성 및/또는 안전성을 향상시키는 대안이 있습니까?

+2

귀하의 목록에서, 귀하는 이들을 전세계에 선언 한 것이 아니라 클래스의 회원으로 간주합니까? – Guy

+0

이것은 실제로 내가 "세계적으로"이해하는 것입니다. 그들은 반원들과 똑같지 않습니까? – Lennart

+2

필자는 필드가 'private'인데 반해 'public'클래스 멤버 만 어디서나 액세스 할 수 있다는 점이 차이라고 생각합니다. – Craigy

답변

1

올바른 방법입니다. 예.

추가 할 내용이 없습니다.

관련 문제