마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

뷰홀더의 static, non-static의 차이점?

0 추천

처음 리사이클러뷰를 접했을때 어댑터내에서 뷰홀더 클래슬르 정의하는데 static으로 선언했던것을 기억합니다.

그런데 계속 공부를하다가 static으로 사용하는 이유가 뭐지 하다가.. 딱히 static으로 사용하지 않아도

될것같아 이후로 뷰홀더 전부 public으로만 선언했습니다.

 

그러다가 코드 세세하게 수정을하다가 갑자기 정적(static) 뷰홀더와 비정적 뷰홀더의 차이점이

궁금해서 스택오버플로어에서 보게됐는데요.

 

안드로이드보다는 자바의 개념에서 

클래스에서 인스턴스를 제거 할 경우 메모리 누수를 방지하기 위해 내부 클래스에 정적을 사용하는 것이 좋습니다.

라고 하네요.

또 그 아래로 

1.뷰홀더를 static으로 선언하면 다른 어댑터에서 재사용할수 있지만 권장하지않고,

새로 분리된 클래스를 만들고 사용하는게 합리적이다. 하나의 목적을 위한 하나의 클래스 어쩌고저쩌고..

 

2.뷰 홀더의 경우 어댑터 내부에서만 사용되며 해당 인스턴스는 정의에 따라 프래그먼트나 액티비티 또는 다른 곳으로 이동해서는 안됩니다. 이것은 정적 또는 비정적을 갖는 것이 동일하다는 것을 의미합니다

 

이정도 답변이었는데요, 저도 보면서 뷰홀더가 다른 어댑터에서 사용되는거를 본적이 없는것같습니다

적어도 저의 매우매우매우 얕은 지식에 의하면..물론 다른곳에서 어떤지는 잘모르겠습니다

또한 뷰홀더가 외부에서 사용된것도 본적이 없어서 적어도 제 코드에서는

public 으로 선언되어있던것을 혹시나하는 외부의 접근을 막으려고 private으로 바꿨습니다..

 

괜찮은 선택인가요, 메모리 관리차원에서는 static이 좋은것같지만 하나의 클래스, 하나의 목적 이런걸

따졌을때는 별로 좋지 못하다?해서 static을 비추천하는것같은데 맞을까요?

codeslave (3,940 포인트) 님이 2021년 3월 12일 질문
codeslave님이 2021년 3월 12일 수정

1개의 답변

0 추천
개인적으로 뷰홀더의 경우는 static이 될 필요가 없다고 봅니다. 요즘에는 뷰홀더를 static 으로 선언해서 쓰는 경우를 본 적이 없는 것 같아요. 그리고 저 같은 경우는 어댑터, 뷰홀더 모두 가능하면 재사용을 합니다.
spark (226,420 포인트) 님이 2021년 3월 12일 답변
...