2017-10-13 19 views
0

나는리스트의 다른 유형을 많이 사용하는 프로젝트 작업, 그래서 나는이BaseAdapter의 익명 인스턴스를 만드는 데 어떤 단점이 있습니까?

BaseAdapter someAdapter = new BaseAdapter() { 
      @Override 
      public int getCount() { 
       return 0; 
      } 

      @Override 
      public Object getItem(int position) { 
       return null; 
      } 

      @Override 
      public long getItemId(int position) { 
       return 0; 
      } 

      @Override 
      public View getView(int position, View convertView, ViewGroup parent) { 
       return null; 
      } 
     }; 

을했고, 여기에 모든 목록 별 변경한다; 이 나쁜 습관인가? 내 프로젝트 파일을 과도하게 복제 할 때마다 새 어댑터를 확장하는 느낌이 들며, 이로 인해 코드를 더 잘 구성하는 데 도움이됩니다. 이 접근법에 어떤 단점이 있습니까? 즉, 잘못되었거나 잘못된 코드 스타일이 될 수있는 것이 있습니까?

이 질문에 광의가 있으면 죄송합니다. 나는 몇 가지 다른 질문을 보았다. 일반적인 adv./disadv. 익명의 클래스는 없지만 구체적이지는 않습니다.

+1

리사이클 뷰를 사용하십시오.이 링크를 확인하십시오. https://stackoverflow.com/questions/26245139/how-to-create-recyclerview-with-multiple-view-type – Anonymous

+0

귀하의 질문은 의견을 바탕으로하고 주제를 벗어났습니다. 따라서 –

+0

나는 동의하지 않는다. 모든 옵션에는 뚜렷한 장점과 단점이 있습니다 (이미 말했듯이 쉽게 관리 할 수있는 코드와 같은 미학은 제가 여기서 찾고있는 것이 아닙니다). 나는이 응용 프로그램을 위해 익명의 클래스를 정기적으로 사용하는 것에 특별한 문제가 있는지 묻는다. – ColonD

답변

0

다른 BaseAdapters에는 모두 고유 한 구현이 있으면 괜찮습니다.

많은 익명 사용자가 동일한 (또는 유사한) 코드를 반복한다고 생각 되시면 재 명명 (직접 반복하지 마십시오)을 할 수 있으므로 명명 된 구현으로 이동하십시오.

명명 된 클래스와 비교할 때 익명 클래스가 잘못 될 수있는 것은 거의 없습니다. 개인적으로 경험 한 것 : 클래스의 기술적 명명은 "$ nnn"과 같은 것을 둘러싼 클래스 이름에 추가합니다. 따라서이 클래스 이름을 유지하지 마십시오. 응용 프로그램의 버전이 변경되는 경우에도 안정적으로 유지됩니다. 클래스를 편집 한 후에는 다음 컴파일시 다른 "$ nnn"접미어가 붙을 가능성이 큽니다.

+1

그리고 더 일반적으로 [익명 클래스를 통한 인터페이스 확장과 인터페이스 확장] (https://stackoverflow.com/questions/22728932/extending-an)도 참조한다. -interface-vs-instantiating-via-anonymous-class) – pirho